Amazon S3: acesso ao bucket do S3, mas bucket de produção negado sem MFA recente
Este exemplo mostra como você pode criar uma política baseada em identidade que permita que um administrador do Amazon S3 acesse qualquer bucket, inclusive para atualização, adição e exclusão de objetos. No entanto, ela negará explicitamente o acesso ao bucket amzn-s3-demo-bucket-production
se o usuário não tiver feito login usando Multi-Factor Authentication (MFA) nos últimos trinta minutos. Esta política concede as permissões necessárias para executar essa ação no console ou de forma programática usando a AWS CLI ou a API da AWS. Para usar esta política, substitua o texto do espaço reservado em itálico
na política de exemplo por suas próprias informações. Em seguida, siga as instruções em criar uma política ou editar uma política.
Esta política nunca permite o acesso programático ao bucket amzn-s3-demo-bucket
usando chaves de acesso de usuário de longo prazo. Isso é feito usando a chave de condição aws:MultiFactorAuthAge
com o operador de condição NumericGreaterThanIfExists
. Essa condição de política retornará true
se a MFA não estiver presente ou se a idade da MFA for maior do que 30 minutos. Nessas situações, o acesso será negado. Para acessar o bucket amzn-s3-demo-bucket-production
de forma programática, o administrador do S3 deve usar credenciais temporárias geradas nos últimos 30 minutos usando a operação 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"} } } ] }