Por que não consigo fazer o carregamento de um arquivo grande para o Amazon S3 com a criptografia de chave do AWS KMS?

3 minuto de leitura
0

Eu quero fazer o carregamento de um arquivo grande para um bucket do Amazon Simple Storage Service (Amazon S3). Na minha solicitação de carregamento, incluí informações de criptografia com uma chave do AWS Key Management Service (AWS KMS). No entanto, recebo um erro de acesso negado.

Breve descrição

Confirme se você tem permissão para realizar ações kms:Decrypt na chave do AWS KMS usada para criptografar o objeto.

Para arquivos grandes, comandos s3 de alto nível com a AWS Command Line Interface (AWS CLI), SDKs da AWS e muitos programas de terceiros realizam automaticamente um carregamento fracionado. Para usar uma chave do AWS KMS para criptografar um carregamento fracionado, você deve ter permissões kms:GenerateDataKey e kms:Decrypt. As permissões kms:GenerateDataKey permitem que você inicie o carregamento. Com as permissões kms:Decrypt, você pode criptografar partes recém-carregadas com a chave usada nas partes anteriores do mesmo objeto.

Observação: depois de carregar todas as partes, você deve montar as partes carregadas para concluir a operação de carregamento fracionado. Como as partes carregadas são criptografadas no lado do servidor com uma chave do AWS KMS, você deve descriptografar as partes do objeto antes de poder montá-las. Portanto, você precisa ter permissões kms:Decrypt para solicitações de carregamento fracionado que usam criptografia do lado do servidor com chaves do AWS KMS (SSE-KMS).

Resolução

Seu perfil e chave do AWS Identity and Access Management (IAM) podem existir na mesma conta da AWS ou em contas diferentes. Se seu perfil e chave do IAM estiverem na mesma conta, você poderá especificar permissões kms:Decrypt a partir de uma política do IAM ou da política de chave do AWS KMS. Se seu perfil e chave do IAM estiverem em contas diferentes, você precisará especificar as permissões kms:Decrypt na chave e na política do IAM.

Política de chave

Analise a política de chave do AWS KMS na exibição da política do Console de Gerenciamento da AWS.

Na política de chave, pesquise declarações em que o ARN do seu usuário ou perfil do IAM esteja listado como entidade principal da AWS. O ARN está no seguinte formato: arn:aws:iam::111122223333:user/john.

Em seguida, verifique a lista de ações que suas declarações de perfil ou usuário do IAM permitem. Para carregamentos fracionados, a lista de ações permitidas deve incluir kms:Decrypt com SSE-KMS.

Por exemplo, a seguinte declaração em uma política de chave permite que o usuário John execute as ações kms:Decrypt e kms:GenerateDataKey:

{  
            "Sid": "Allow use of the key",  
            "Effect": "Allow",  
            "Principal": {  
                "AWS": "arn:aws:iam::111122223333:user/john"  
            },  
            "Action": [  
                "kms:Decrypt",  
                "kms:GenerateDataKey"  
            ],  
            "Resource": "*"  
        },

Permissões do IAM

Para revisar suas permissões do IAM, abra o console do IAM e, em seguida, selecione seu usuário ou perfil do IAM.

Analise a lista de políticas de permissões que se aplicam ao seu usuário ou perfil do IAM. Certifique-se de que haja uma política aplicada que permita a você executar a ação kms:Decrypt na chave usada para criptografar o objeto:

{  
  "Version": "2012-10-17",  
  "Statement": {  
    "Effect": "Allow",  
    "Action": [  
      "kms:Decrypt",  
      "kms:GenerateDataKey"  
    ],  
    "Resource": [  
      "arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"  
    ]  
  }  
}

Esse exemplo de declaração concede ao usuário do IAM acesso para executar kms:Decrypt e kms:GenerateDataKey na chave arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd.

Para obter instruções sobre como atualizar suas permissões do IAM, consulte Alteração de permissões de um usuário do IAM.

Informações relacionadas

Gerador de políticas da AWS

AWS OFICIAL
AWS OFICIALAtualizada há 8 meses