Amazon S3: acesso ao bucket do S3, mas bucket de produção negado sem MFA recente - AWS Identity and Access Management

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 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 Production 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 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:::Production/*", "arn:aws:s3:::Production" ], "Condition": { "NumericGreaterThanIfExists": {"aws:MultiFactorAuthAge": "1800"} } } ] }