Por que estou recebendo uma mensagem de erro de acesso negado quando faço upload de arquivos para o meu bucket do Amazon S3 que tem a criptografia padrão do AWS KMS?
Meu bucket do Amazon Simple Storage Service (Amazon S3) tem criptografia padrão do AWS Key Management Service (AWS KMS). Estou tentando fazer upload de arquivos para o bucket, mas o Amazon S3 retorna uma mensagem de erro de acesso negado. Como posso corrigir isso?
Resolução
Primeiro, confirme se:
- Seu usuário ou perfil do AWS Identity and Access Management (IAM) tem permissão s3:PutObject no bucket.
- Sua chave do AWS KMS não tem um alias “aws/s3". Esse alias não pode ser usado para criptografia de bucket padrão se as entidades principais do IAM entre contas estiverem carregando os objetos. Para mais informações sobre as chaves do AWS KMS e o gerenciamento de políticas, consulte Proteção de dados usando criptografia do lado do servidor com o AWS Key Management Service (SSE-KMS).
Em seguida, atualize as permissões do AWS KMS do seu usuário ou perfil do IAM com base na mensagem de erro que você recebe.
Importante:
- Se a chave do AWS KMS e o perfil do IAM pertencerem a contas diferentes da AWS, a política do IAM e a política de chave do KMS deverão ser atualizadas. Certifique-se de adicionar as permissões do KMS à política do IAM e à política de chave do KMS.
- Para usar uma política do IAM para controlar o acesso a uma chave do KMS, a política de chave da chave do KMS deve dar permissão à conta para usar as políticas do IAM.
“Ocorreu um erro (AccessDenied) ao chamar a operação PutObject: acesso negado”
Essa mensagem de erro indica que seu usuário ou perfil do IAM precisa de permissão para a ação kms:GenerateDataKey.
Siga estas etapas para adicionar permissão para kms:GenerateDataKey:
1. Abra o console do IAM.
2. Escolha o usuário ou o perfil do IAM que você está usando para fazer upload de arquivos para o bucket do Amazon S3.
3. Na guia Permissões, expanda cada política para ver seu documento de política JSON.
4. Nos documentos de política JSON, procure políticas relacionadas a acesso ao AWS KMS. Revise as declarações com “Efeito”: “Permitir” para verificar se o usuário ou o perfil tem permissões para a ação kms:GenerateDataKey na chave do AWS KMS do bucket.
5. Se essa permissão estiver ausente, adicione-a à política apropriada. Para obter instruções, consulte Adicionar permissões a um usuário (console) ou Modificar uma política de permissões de perfil (console).
6. Nos documentos de política JSON, procure declarações com “Efeito”: “Negar”. Confirme se essas declarações não negam a ação s3:PutObject no bucket. As declarações não devem negar ao usuário ou perfil do IAM o acesso à ação kms:GenerateDataKey na chave usada para criptografar o bucket. Além disso, as permissões necessárias do KMS e do S3 não devem ser restritas ao usar políticas de endpoint da VPC, políticas de controle de serviços, limites de permissões ou políticas de sessão.
“Ocorreu um erro (AccessDenied) ao chamar a operação CreateMultipartUpload: acesso negado”
Essa mensagem de erro indica que seu usuário ou perfil do IAM precisa de permissão para as ações kms:GenerateDataKey e kms:Decrypt.
Siga estas etapas para adicionar permissões para kms:GenerateDataKey e kms:Decrypt:
1. Abra o console do IAM.
2. Escolha o usuário ou o perfil do IAM que você está usando para fazer upload de arquivos para o bucket do Amazon S3.
3. Na guia Permissões, expanda cada política para ver seu documento de política JSON.
4. Nos documentos de política JSON, procure políticas relacionadas a acesso ao AWS KMS. Revise as declarações com “Efeito”: “Permitir” para verificar se o perfil tem permissões para kms:GenerateDataKey e kms:Decrypt na chave do AWS KMS do bucket.
5. Se essas permissões estiverem ausentes, adicione-as à política apropriada. Para obter instruções, consulte Adicionar permissões a um usuário (console) ou Modificar uma política de permissões de perfil (console).
6. Nos documentos de política JSON, procure declarações com “Efeito”: “Negar”. Em seguida, confirme se essas declarações não negam a ação s3:PutObject no bucket. As declarações não devem negar ao usuário ou perfil do IAM o acesso às ações kms:GenerateDataKey e kms:Decrypt na chave usada para criptografar o bucket. Além disso, as permissões necessárias do KMS e do S3 não devem ser restritas ao usar políticas de endpoint da VPC, políticas de controle de serviços, limites de permissões ou políticas de sessão.
Informações relacionadas
Definir o comportamento padrão de criptografia do lado do servidor para buckets do Amazon S3