Por que não consigo usar uma chave personalizada do AWS KMS para criar ou anexar um volume criptografado do EBS?

3 minuto de leitura
0

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

  1. Abra o console do AWS CloudTrail.
  2. 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.
  3. Escolha Filtrar, selecione Origem do evento e, em seguida, digite kms.amazonaws.com.
  4. Depois que os resultados forem carregados, escolha o botão de download e, em seguida, escolha Baixar CSV.
  5. 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"
				}
			}
		}
	]
}
AWS OFICIAL
AWS OFICIALAtualizada há 9 meses