Saltar al contenido

¿Cómo puedo usar la característica Bloqueo del acceso público de Amazon S3 para administrar el acceso público a los recursos de S3?

4 minutos de lectura
0

Quiero administrar el acceso a mis recursos de Amazon Simple Storage Service (Amazon S3). Para hacer esto, quiero usar el bloqueo del acceso público de S3.

Resolución

Puedes configurar los ajustes del bloqueo del acceso público de Amazon S3 para diferentes niveles de acceso.

Adición de los permisos necesarios

Para cambiar la configuración de Bloqueo del acceso público de Amazon S3, tu usuario o rol de AWS Identity and Access Management (IAM) tiene los siguientes permisos:

  • s3:PutAccountPublicAccessBlock
  • s3:PutBucketPublicAccessBlock

Para ver la configuración actual del bloqueo del acceso público de S3, asegúrate de que tu usuario o rol de IAM tenga los siguientes permisos:

  • s3:GetAccountPublicAccessBlock
  • s3:GetBucketPublicAccessBlock

Para obtener más información, consulta Permisos.

Activación o desactivación del bloqueo de acceso público de S3

Nota: A partir de abril de 2023, Amazon S3 activará automáticamente el bloqueo del acceso público de S3 para todos los buckets que crees.

Puedes configurar los ajustes del bloqueo del acceso público de S3 a nivel de cuenta , nivel de bucket o ambos.

Activación del bloqueo del acceso público de S3

Tras activar el bloqueo del acceso público de S3, Amazon S3 realizará las siguientes acciones:

  • Deniega las solicitudes anónimas y no autenticadas sin excepciones. Los URI y URL de Amazon S3 que utilizan un navegador web o curl para acceder reciben un error "HTTP 403 Access Denied".
  • Ignora las nuevas ACL públicas que aplicas a los objetos de Amazon S3 y revoca el acceso de los usuarios al bucket y objetos de S3.

Desactivación del bloqueo del acceso público de S3

Si desactivas el bloqueo del acceso público de S3, Amazon S3 permite el acceso a un objeto con una política de bucket pública o una ACL pública. Es posible que incurras en costes por las solicitudes de Amazon S3, como LIST o GET. AWS te cobra por las solicitudes anónimas que alguien hace contra el bucket u objeto público. Las reglas de AWS Config y del analizador de acceso de IAM para S3 generan advertencias sobre el estado público del bucket.

Al desactivar el bloqueo del acceso público de S3, la consola de Amazon S3 muestra la configuración de acceso en el panel de resumen del acceso externo.

Solución de errores "Access Denied" y de bucket de S3

Es posible que recibas un error "Access Denied" al intentar activar o desactivar el bloqueo de acceso público de S3 en tu bucket de S3.

Para solucionar este problema, toma estas medidas:

  • Comprueba que las políticas de control de servicios (SCP) de AWS Organizations no impidan que se modifique el bloqueo del acceso público de S3 a nivel de cuenta o bucket. Comprueba las instrucciones Deny para las acciones s3:PutBucketPublicAccessBlock y s3:PutAccountPublicAccessBlock.
  • Si tu bucket muestra un error en la columna Acceso, agrega los siguientes permisos para incluir los buckets y la configuración de acceso público en tu política de IAM:
    s3:GetAccountPublicAccessBlock
    s3:GetBucketPublicAccessBlock
    s3:GetBucketPolicyStatus
    s3:GetBucketLocation
    s3:GetBucketAcl
    s3:ListAccessPoints
    s3:ListAllMyBuckets

Identificación del usuario o rol de IAM que ha modificado el bloqueo del acceso público de S3

Consulta el historial de eventos de AWS CloudTrail para identificar los eventos de los siguientes EventNames:

  • Para conocer el nivel de cuenta, comprueba PutAccountPublicAccessBlock.
  • Para conocer el nivel de bucket, comprueba PutBucketPublicAccessBlock.

Para identificar el nombre de recurso de Amazon (ARN) de la persona que llama, comprueba el campo UserIdentity del registro. Ejemplo de registro:

 "userIdentity": {  
 "type": "AssumedRole",  
 "principalId": "[AccountID]:[RoleName]",  
 "arn": "arn:aws:sts::[AccountID]:assumed-role/[RoleName]/[RoleSession]",

A continuación, comprueba bucketName para identificar el bucket de S3 modificado. Ejemplo de registro:

"requestParameters": {  
 "publicAccessBlock": "",  
 "bucketName": "[BucketName]"
OFICIAL DE AWSActualizada hace 5 meses