Como posso resolver o erro "Given key ID not accessible" ao realizar uma cópia entre contas no AWS Backup?

4 minuto de leitura
0

Quando faço uma cópia entre contas no AWS Backup, recebo o erro “Given key ID not accessible.”

Breve descrição

Ao usar o AWS Backup para realizar uma cópia entre contas de uma conta da AWS para outra, você recebe um erro semelhante às seguintes mensagens:

"Given key ID is not accessible"

-ou-

"The source snapshot KMS key does not exist, is not enabled or you do not have permissions to access it"

Para criar uma cópia entre contas com êxito, você deve permitir a conta de destino na política de chave do AWS Key Management Service (AWS KMS) da conta de origem. As seguintes permissões do AWS KMS são necessárias para realizar várias operações criptográficas:

  • DescribeKey
  • Encrypt
  • Decrypt
  • ReEncryptFrom
  • ReEncryptTo
  • GenerateDataKeyPair
  • GenerateDataKeyPairWithoutPlaintext
  • GenerateDataKeyWithoutPlaintext
  • CreateGrant
  • ListGrant
  • RevokeGrant

Resolução

Você deve incluir o usuário raiz da conta de destino na política de chave do AWS KMS da conta de origem. Em seguida, o usuário raiz da conta de destino delega as permissões necessárias do AWS Identity and Access Management (IAM) aos usuários e perfis.

Para recursos que oferecem suporte ao gerenciamento completo do AWS Backup, a chave do AWS KMS de origem é a chave de criptografia do cofre. A chave do AWS KMS de origem pode ser uma chave gerenciada pelo cliente ou uma chave gerenciada pela AWS. Se a chave do AWS KMS de origem for uma chave gerenciada pelo cliente, você deverá modificar a política de chave para incluir a conta de destino.

Para recursos que não oferecem suporte ao gerenciamento completo do AWS Backup, a chave do AWS KMS de origem é a chave de criptografia do recurso original. A chave do AWS KMS de origem deve ser uma chave gerenciada pelo cliente, e você deve modificar a política de chave para incluir a conta de destino.

Observação: a chave do AWS KMS de origem não pode ser uma chave gerenciada pela AWS. Isso ocorre porque uma chave gerenciada pela AWS não permite que você modifique a política de chave. Além disso, você não pode compartilhar a chave gerenciada pela AWS com a conta de destino.

Política de chave do AWS KMS de origem

Para criar uma cópia de uma conta para outra, modifique sua chave do AWS KMS de origem para incluir as seguintes permissões:

Observação: substitua SourceAccountID e DestinationAccountID por seus IDs de conta de origem e destino.

{  
    "Version": "2012-10-17",  
    "Id": "cab-kms-key",  
    "Statement": [{  
            "Sid": "Enable IAM User Permissions",  
            "Effect": "Allow",  
            "Principal": {  
                "AWS": "arn:aws:iam::SourceAccountID:root"  
            },  
            "Action": "kms:*",  
            "Resource": "*"  
        },  
        {  
            "Sid": "Allow use of the key",  
            "Effect": "Allow",  
            "Principal": {  
                "AWS": [  
                    "arn:aws:iam::SourceAccountID:root",  
                    "arn:aws:iam::DestinationAccountID:root"  
                ]  
            },  
            "Action": [  
                "kms:DescribeKey",  
                "kms:Encrypt",  
                "kms:Decrypt",  
                "kms:ReEncrypt*",  
                "kms:GenerateDataKey*"  
            ],  
            "Resource": "*"  
        },  
        {  
            "Sid": "Allow attachment of persistent resources",  
            "Effect": "Allow",  
            "Principal": {  
                "AWS": [  
                    "arn:aws:iam::SourceAccountID:root",  
                    "arn:aws:iam::DestinationAccountID:root"  
                ]  
            },  
            "Action": [  
                "kms:CreateGrant",  
                "kms:ListGrants",  
                "kms:RevokeGrant"  
            ],  
            "Resource": "*",  
            "Condition": {  
                "Bool": {  
                    "kms:GrantIsForAWSResource": "true"  
                }  
            }  
        }  
    ]  
}

Dica: na política anterior, em vez de usar arn:aws:iam::DestinationAccountID:root, você pode restringir o acesso a um único perfil da conta de destino com o ARN arn:aws:iam::DestinationAccountID:role/aws-service-role/backup.amazonaws.com/AWSServiceRoleForBackup. AWSServiceRoleforBackup é um perfil de serviço criado automaticamente na conta de destino e usada para extrair backups da conta de origem para a conta de destino.

Considerações adicionais sobre criptografia no AWS Backup para cópias entre contas

Para ver quais tipos de recursos são elegíveis para o gerenciamento completo do AWS Backup, consulte Disponibilidade de atributo por recurso.

Se o recurso oferecer suporte ao gerenciamento completo do AWS Backup, você poderá criptografar esses recursos com uma chave do AWS KMS gerenciada pelo cliente ou uma chave gerenciada pela AWS. Nesse cenário, ocorre a seguinte criptografia:

  • O backup de origem é criptografado com uma chave do AWS KMS do cofre de origem.
  • A cópia de destino é criptografada com uma chave do AWS KMS do cofre de destino.

Para criar cópias entre contas de recursos que não oferecem suporte ao gerenciamento completo do AWS Backup, criptografe os recursos com uma chave do AWS KMS gerenciada pelo cliente. Nesse cenário, ocorre a seguinte criptografia:

  • O backup de origem é criptografado com a chave de criptografia do recurso original.
  • A cópia de destino é criptografada com uma chave do AWS KMS do cofre de destino.

Informações relacionadas

O que é o AWS Backup?

Ensuring security of your code in a cross-region/cross-account deployment solution

Criptografia para backups no AWS Backup

AWS OFICIAL
AWS OFICIALAtualizada há 9 meses