Ir para o conteúdo

Como soluciono o erro "You don't have permissions to edit bucket policy" quando tento modificar uma política de bucket no Amazon S3?

6 minuto de leitura
0

Eu recebo a mensagem de erro "You don't have permissions to edit bucket policy" quando modifico a política de bucket do meu bucket do Amazon Simple Storage Service (Amazon S3).

Breve descrição

Observação: se você receber mensagens de erro 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.

Você recebe esse erro pelos seguintes motivos:

Para resolver esse erro, verifique se o usuário ou perfil do IAM tem a permissão s3:GetBucketPolicy para visualizar a política de bucket e a permissão s3:PutBucketPolicy para editá-la. Se não houver uma política de usuário do IAM para conceder acesso, adicione uma. Se você não tiver as permissões necessárias, use outra identidade do IAM que tenha acesso ao bucket e edite a política de bucket. Se ninguém tiver acesso à política de bucket, use o comando delete-bucket-policy da AWS CLI para excluir a política e depois recriá-la.

Se você precisar adicionar uma política de leitura pública, desative o atributo Bloqueio de acesso público do Amazon S3 do bucket. Se você usa o AWS Organizations, verifique se você não tem nenhuma política de controle de serviços que negue explicitamente as ações do Amazon S3. Além disso, confirme se é possível adicionar exceções na sua operação.

Resolução

Verifique suas permissões para s3:GetBucketPolicy e s3:PutBucketPolicy

Para verificar suas permissões, conclua as seguintes etapas:

  1. Abra o console do IAM.
  2. Selecione a identidade usada para acessar a política de bucket, como Usuário ou Perfil.
  3. Selecione o nome da identidade do IAM que você está usando para acessar a política de bucket.
  4. Na guia Permissões da sua identidade do IAM, expanda cada política para ver seu documento de política JSON.
  5. 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.
    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.
  6. Nos documentos de política JSON, pesquise instruções com "Effect": "Deny". Em seguida, confirme se essas instruções não negam à sua identidade do IAM o acesso a s3:GetBucketPolicy ou s3:PutBucketPolicy.
  7. Verifique se o ARN do bucket (exemplo: arn:aws:s3:::DOC-EXAMPLE-BUCKET) está presente na seção Recursos da política.
    Observação: s3:GetBucketPolicy e s3:PutBucketPolicy são ações em nível de bucket.
  8. 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 essas 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. Para obter instruções sobre como modificar suas permissões do IAM, consulte Alterar permissões de um usuário do IAM.

Use outra identidade do IAM que tenha acesso ao bucket para modificar a política de bucket

Para modificar sua política de bucket, conclua as etapas a seguir:

  1. Abra o console do Amazon S3.
  2. Na lista de buckets, abra o bucket que tem a política que você deseja alterar.
  3. Clique na guia Permissões.
  4. Selecione Política de bucket.
  5. Procure instruções com "Effect": "Deny".
  6. Edite a política do bucket para atualizar quaisquer instruções "Effect": "Deny" que negam à identidade do IAM o acesso a s3:GetBucketPolicy ou s3:PutBucketPolicy. Para obter instruções, consulte a seção Criar ou editar uma política de bucket em Adicionar uma política de bucket usando o console do Amazon S3.
  7. 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 a política de bucket se ela negar o acesso de todos

Se a política de bucket negar a todos o acesso a s3:GetBucketPolicy, s3:PutBucketPolicy ou a todas as ações do Amazon S3 (s3:*), exclua a política de 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.

No AWS Organizations, exclua as políticas de controle de serviços que não permitem o acesso ao Amazon S3

Se você usa o AWS Organizations, consulte suas políticas de controle de serviços (service control policies, SCPs). Procure qualquer declaração que negue explicitamente a ação s3:PutBucketPolicy ou qualquer 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": "*"  
    }  
  ]  
}
AWS OFICIALAtualizada há 3 meses