Não consigo criar nem anexar um volume criptografado do Amazon Elastic Block Store (Amazon EBS) a partir de um instantâneo. O instantâneo é criptografado com uma chave gerenciada pelo cliente do AWS Key Management Service (AWS KMS).
Breve descrição
Talvez você não possa criar ou anexar um volume criptografado do EBS a partir de um instantâneo criptografado. Isso ocorre quando seu instantâneo e a chave KMS personalizada usada para criptografar o instantâneo estão na mesma conta e não têm permissões de política de chaves. Para resolver esse problema, permita o usuário ou a função do AWS Identity and Access Management (IAM) na política de chaves do AWS KMS.
Resolução
Identificar as permissões ausentes da política que usa o histórico de eventos do AWS CloudTrail
- Abra o console do AWS CloudTrail.
- Escolha Histórico de eventos. Em seguida, em Intervalo de tempo, insira uma janela de 15 minutos quando ocorreram as chamadas da API AttachVolume ou CreateVolume.
- Escolha Filtrar, selecione Origem do evento e, em seguida, digite kms.amazonaws.com.
- Depois que os resultados forem carregados, escolha o botão de download e, em seguida, escolha Baixar CSV.
- Abra o arquivo .csv e, em seguida, filtre a coluna Código de erro para AccessDenied. Os Nomes de eventos com o código de erro AccessDenied geralmente são as permissões ausentes.
Observação: os eventos do CloudTrail podem levar até 15 minutos para aparecer na guia Histórico de eventos. Verificar o Histórico de eventos imediatamente após receber o status de falha CreateVolume ou AttachVolume pode não mostrar nenhum evento.
Depois de identificar as permissões ausentes, siga as etapas a seguir para resolver o problema.
Verifique se a política de chaves do KMS inclui o usuário ou a função do IAM que está criando ou anexando o volume
Visualização padrão do console AWS KMS
1. Abra o console do AWS KMS.
2. Escolha Chaves gerenciadas pelo cliente e, em seguida, selecione a chave apropriada.
3. Em Política de chave, role para baixo até Usuários de chaves. Verifique se a seção Usuários de chaves lista o usuário ou a função do IAM que está criando ou anexando o volume.
4. Se a seção Usuários de chaves não listar o usuário ou o perfil, escolha Adicionar, selecione o usuário ou o perfil e, em seguida, escolha Adicionar.
Visão da política do console AWS KMS
Se você já editou manualmente a política de chaves do AWS KMS, ela estará disponível somente na visualização da política (JSON). Para permitir as permissões necessárias do AWS KMS, liste o ARN do usuário ou função do IAM como Principal na declaração.
Exemplo de política de chaves
Veja a seguir um exemplo de uma política de chaves do AWS KMS que permite que UserA acesse a Key1:
{
"Version": "2012-10-17",
"Id": "key-consolepolicy-3",
"Statement": [{
"Sid": "Enable IAM User Permissions",
...
},
{
"Sid": "Allow access for Key Administrators",
...
},
{
"Sid": "Allow use of the keys",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:user/UserA"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
},
{
"Sid": "Allow attachment of persistent resources",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:user/UserA"
},
"Action": [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": "*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
}
]
}