Amazon S3: acceso al bucket de S3, pero bucket de producción denegado sin MFA reciente
En este ejemplo se muestra cómo podría crear una política basada en identidad que permita a un administrador de Amazon S3 obtener acceso a cualquier bucket, incluida la actualización, incorporación y eliminación de objetos. Sin embargo, deniega explícitamente el acceso al bucket de amzn-s3-demo-bucket-production
si el usuario no ha iniciado sesión con la autenticación multifactor (MFA) en los últimos treinta minutos. Esta política concede los permisos necesarios para realizar esta acción en la consola o mediante programación a través de la AWS CLI o la API de AWS. Para utilizar esta política, sustituya el texto en cursiva
de la política de ejemplo por su propia información. A continuación, siga las instrucciones en Crear una política o Editar una política.
Esta política nunca permite acceso mediante programación al bucket amzn-s3-demo-bucket
con claves de acceso de usuario a largo plazo. Esto se logra con la clave de condición aws:MultiFactorAuthAge
con el operador de condición NumericGreaterThanIfExists
. Esta condición de la política devuelve true
si el MFA no está presente o si la edad del MFA es superior a 30 minutos. En esas situaciones, se deniega el acceso. Para acceder al bucket amzn-s3-demo-bucket-production
mediante programación, el administrador de S3 debe utilizar credenciales temporales que se generaron en los últimos 30 minutos mediante la operación de API GetSessionToken.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListAllS3Buckets", "Effect": "Allow", "Action": ["s3:ListAllMyBuckets"], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowBucketLevelActions", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowBucketObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:GetObjectAcl", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::*/*" }, { "Sid": "RequireMFAForProductionBucket", "Effect": "Deny", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-production/*", "arn:aws:s3:::amzn-s3-demo-bucket-production" ], "Condition": { "NumericGreaterThanIfExists": {"aws:MultiFactorAuthAge": "1800"} } } ] }