¿Por qué no puedo usar una clave de AWS KMS personalizada para crear o adjuntar un volumen de EBS cifrado?

3 minutos de lectura
0

No puedo crear ni adjuntar un volumen cifrado de Amazon Elastic Block Store (Amazon EBS) a partir de una instantánea. La instantánea se cifra con una clave administrada por el cliente de AWS Key Management Service (AWS KMS).

Breve descripción

Es posible que no pueda crear o adjuntar un volumen de EBS cifrado a partir de una instantánea cifrada. Esto ocurre cuando la instantánea y la clave de KMS personalizada que se usa para cifrar la instantánea están en la misma cuenta y no tienen permisos de política de claves. Para resolver este problema, permita que el usuario o rol de AWS Identity and Access Management (IAM) participe en la política de claves de AWS KMS.

Resolución

Identificar los permisos que faltan en la política que usa el historial de eventos de CloudTrail

  1. Abra la consola de AWS CloudTrail.
  2. Seleccione Historial de eventos. A continuación, en Intervalo de tiempo, introduzca un intervalo de 15 minutos en el que se produzcan las llamadas a la API AttachVolume o CreateVolume.
  3. Elija Filtro, seleccione Origen del evento y, a continuación, escriba kms.amazonaws.com.
  4. Cuando se carguen los resultados, seleccione el botón de descarga y, a continuación, elija Descargar CSV.
  5. Abra el archivo .csv y, a continuación, filtre la columna de Códigos de error para AccessDenied. Los Nombres de eventos con el código de error AccessDenied suelen ser los permisos que faltan.

Nota: Los eventos de CloudTrail pueden tardar hasta 15 minutos en aparecer en la pestaña Historial de eventos. Es posible que, al comprobar el Historial de eventos inmediatamente después de recibir el estado de error CreateVolume o AttachVolume, no se muestre ningún evento.

Tras identificar los permisos que faltan, complete los siguientes pasos para resolver el problema.

Compruebe que la política de claves de KMS incluya al usuario o rol de IAM que crea o adjunta el volumen

Vista predeterminada de la consola de AWS KMS

1.   Abra la consola de AWS KMS.

2.   Elija Claves administradas por el cliente y, a continuación, seleccione la clave correspondiente.

3.   En Política de claves, desplácese hacia abajo hasta Usuarios clave. Compruebe que en la sección Usuarios clave aparezca el usuario o el rol de IAM que crea o adjunta el volumen.

4.   Si la sección Usuarios clave no muestra el usuario o el rol, elija Agregar, seleccione el usuario o el rol y, a continuación, elija Agregar.

Vista de la política de la consola de AWS KMS

Si anteriormente editó manualmente la política de claves de AWS KMS, la política de claves solo estará disponible en la vista de políticas (JSON). Para permitir los permisos de AWS KMS necesarios, indique el ARN del usuario o rol de IAM como principal en la declaración.

Ejemplo de política de claves

El siguiente es un ejemplo de una política de claves de AWS KMS que permite al usuario A acceder a la clave 1:

{
	"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"
				}
			}
		}
	]
}
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 8 meses