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]"