Preciso solucionar o erro "Você não tem permissões para editar a política de bucket" quando tento modificar a política de bucket do meu bucket do Amazon Simple Storage Service (Amazon S3).
Breve descrição
Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Seus usuários recebem o erro “Você não tem permissões para editar a política de bucket” pelos seguintes motivos:
Para resolver os problemas anteriores, conclua as seguintes etapas de solução de problemas.
Resolução
Verifique suas permissões para s3:GetBucketPolicy e s3:PutBucketPolicy
Conclua as etapas a seguir:
- Abra o console do IAM.
- No painel de navegação, selecione a identidade usada para acessar a política de bucket, como Usuários ou Funções.
- Selecione o nome da identidade do IAM que você está usando para acessar a política de bucket.
- Na guia Permissões da sua identidade do IAM, expanda cada política para ver seu documento de política JSON.
- Nos documentos de política JSON, procure políticas relacionadas ao acesso ao Amazon S3. Em seguida, confirme se você tem permissões para as ações s3:GetBucketPolicy e s3:PutBucketPolicy no bucket.
**Observação:**Se não houver uma política com as ações s:3GetBucketPolicy e s3:PutBucketPolicy, adicione essas permissões a uma política. Para obter instruções sobre como modificar suas permissões do IAM, consulte Alterar permissões de um usuário do IAM.
O exemplo de política do IAM a seguir permite que a identidade do IAM execute as ações s3:GetBucketPolicy e s3:PutBucketPolicy em DOC-EXAMPLE-BUCKET:
{ "Version": "2012-10-17",
"Statement": [
{
"Sid": "ModifyBucketPolicy",
"Action": [
"s3:GetBucketPolicy",
"s3:PutBucketPolicy"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
},
{
"Sid": "AccessS3Console",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
}
]
}
Observação: A declaração AccessS3Console na política do IAM anterior concede acesso ao console Amazon S3. Não é específico para mudanças na política de bucket.
- Nos documentos de política JSON, pesquise instruções com "Effect": "Deny". Em seguida, confirme se essas declarações não negam à sua identidade do IAM o acesso a s3:GetBucketPolicy ou s3:PutBucketPolicy.
- Certifique-se de incluir o nome do recurso da Amazon (ARN) do bucket na seção Recursos da política. No exemplo anterior, o ARN é aws:s3:::DOC-EXAMPLE-BUCKET.
Observação: s3:GetBucketPolicy e s3:PutBucketPolicy são ações em nível de bucket.
- Verifique se você aplicou alguma condição global, como aws:SourceIP, na política do IAM para restringir as ações s3:GetBucketPolicy e s3:PutBucketPolicy. Se as condições restringirem o acesso, remova-as ou atualize-as.
Adicione uma política de bucket se ela não existir
Se não for possível encontrar políticas que concedam permissões s3:GetBucketPolicy ou s3:PutBucketPolicy, adicione uma política para concedê-las à sua identidade do IAM. Se você encontrar políticas que negam acesso a s3:GetBucketPolicy ou s3:PutBucketPolicy, remova-as.
Use outra identidade do IAM que tenha acesso ao bucket para modificar a política de bucket
Conclua as etapas a seguir:
- Abra o console do Amazon S3.
- No painel de navegação esquerdo, escolha Buckets de uso geral ou Buckets de diretório.
- Na lista de buckets, abra o bucket que tem a política que você deseja alterar.
- Clique na guia Permissões.
- Selecione Política de bucket.
- Procure instruções com "Effect": "Deny".
- Edite a política de bucket para atualizar quaisquer instruções "Effect": “Deny” que negam à identidade do IAM o acesso a s3:GetBucketPolicy ou s3:PutBucketPolicy.
- Verifique se condições como aws:PrincipalArn são aplicadas na política de bucket para restringir as ações s3:GetBucketPolicy e s3:PutBucketPolicy para sua entidade do IAM. Se essas condições restringirem o acesso, remova-as ou atualize-as.
Exclua e recrie uma política de bucket que nega acesso a todos
Se ninguém tiver acesso às ações s3:getBucketPolicy, s3:putBucketPolicy ou todas as ações do Amazon S3 (s3:*), use o comando delete-bucket-policy da AWS CLI para excluir a política:
delete-bucket-policy
-bucket example_bucket
Observação: Substitua example_bucket pelo nome do seu bucket.
Se você acidentalmente se bloquear fora do bucket e não conseguir excluir a política de bucket, recupere o acesso ao bucket. Depois de excluir a política de bucket, é possível criar uma nova.
Desative o Bloqueio de acesso público do Amazon S3
Se sua política de bucket conceder acesso público, desative o Bloqueio de acesso público do Amazon S3 para o bucket. Para obter mais informações, consulte Bloquear o acesso público ao armazenamento do Amazon S3 e The meaning of "public" (O significado de "público").
Observação: Para evitar o acesso público a buckets privados, ative o Bloqueio de acesso público do Amazon S3 para seu bucket antes de desativá-lo no nível da conta da AWS.
Para AWS Organizations, exclua SCPs que não permitem o acesso ao Amazon S3
Se você usa o AWS Organizations, revise seu serviço (SCPs). Procure qualquer declaração que negue explicitamente a ação s3:PutBucketPolicy ou outra ação de política do Amazon S3. Exclua os SCPs que aplicam o efeito Deny às ações s3:* quando sua organização não exige as políticas.
O exemplo de política a seguir nega acesso a todas as ações do Amazon S3:
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "s3:*",
"Resource": "*"
}
]
}