

# Amazon S3: acesso ao bucket do S3, mas bucket de produção negado sem MFA recente
<a name="reference_policies_examples_s3_full-access-except-production"></a>

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)](id_credentials_mfa.md) 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](access_policies_create.md) ou [editar uma política](access_policies_manage-edit.md).

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](id_credentials_temp_request.md#api_getsessiontoken).

------
#### [ JSON ]

****  

```
{
    "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"}
            }
        }
    ]
}
```

------