

 **Ayude a mejorar esta página** 

Para contribuir a esta guía del usuario, elija el enlace **Edit this page on GitHub** que se encuentra en el panel derecho de cada página.

# Habilitación del cifrado de volúmenes de EBS con claves de KMS administradas por el cliente para el modo automático de EKS
<a name="auto-kms"></a>

Puede cifrar el volumen raíz efímero de las instancias en el modo automático de EKS con una clave de KMS administrada por el cliente.

El modo automático de Amazon EKS utiliza roles vinculados a servicios para delegar permisos a otros servicios de AWS al administrar volúmenes de EBS cifrados para los clústeres de Kubernetes. Este tema describe cómo configurar la política de claves que necesita al especificar una clave administrada por el cliente para el cifrado de Amazon EBS con el modo automático de EKS.

Consideraciones:
+ El modo automático de EKS no necesita autorización adicional para usar la clave administrada por AWS predeterminada para proteger los volúmenes cifrados en la cuenta.
+ Este tema aborda el cifrado de volúmenes efímeros, es decir, los volúmenes raíz de las instancias de EC2. Para obtener más información sobre el cifrado de volúmenes de datos utilizados para cargas de trabajo, consulte [Creación de una clase de almacenamiento](create-storage-class.md).

## Descripción general
<a name="_overview"></a>

Las siguientes claves de AWS KMS se pueden utilizar para el cifrado del volumen raíz de Amazon EBS cuando el modo automático de EKS lanza instancias:
+  **Clave administrada por AWS**: una clave de cifrado en la cuenta que Amazon EBS crea, posee y administra. Esta es la clave de cifrado predeterminada en las cuentas nuevas.
+  **Clave administrada por el cliente**: una clave de cifrado personalizada que usted crea, posee y administra.

**nota**  
La clave debe ser simétrica. Amazon EBS no es compatible con claves asimétricas administradas por el cliente.

## Paso 1: configuración de la política de claves
<a name="_step_1_configure_the_key_policy"></a>

Las claves de KMS deben tener una política de claves que permita al modo automático de EKS lanzar instancias con volúmenes de Amazon EBS cifrados mediante una clave administrada por el cliente.

Configure la política de claves con la siguiente estructura:

**nota**  
Esta política solo incluye permisos para el modo automático de EKS. Es posible que la política de claves necesite permisos adicionales si otras identidades deben usar la clave o administrar concesiones.

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "MyKeyPolicy",
    "Statement": [
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::123456789012:role/ClusterServiceRole"
                ]
            },
            "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::123456789012:role/ClusterServiceRole"
                ]
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        }
    ]
}
```

Asegúrese de reemplazar `<account-id>` con el ID real de cuenta de AWS.

Al configurar la política de claves:
+ El `ClusterServiceRole` debe tener los permisos necesarios de IAM para usar la clave de KMS en operaciones de cifrado.
+ La condición `kms:GrantIsForAWSResource` garantiza que las concesiones solo se puedan crear para servicios de AWS.

## Paso 2: configuración de NodeClass con la clave administrada por el cliente
<a name="_step_2_configure_nodeclass_with_your_customer_managed_key"></a>

Después de configurar la política de claves, haga referencia a la clave de KMS en la configuración de NodeClass del modo automático de EKS:

```
apiVersion: eks.amazonaws.com/v1
kind: NodeClass
metadata:
  name: my-node-class
spec:
  # Insert existing configuration

  ephemeralStorage:
    size: "80Gi"  # Range: 1-59000Gi or 1-64000G or 1-58Ti or 1-64T
    iops: 3000    # Range: 3000-16000
    throughput: 125  # Range: 125-1000

    # KMS key for encryption
    kmsKeyID: "arn:aws:kms:<region>:<account-id>:key/<key-id>"
```

Sustituya los valores de marcador de posición por los valores reales.
+  `<region>` por la región de AWS
+  `<account-id>` por el ID de cuenta de AWS
+  `<key-id>` por el ID de la clave de KMS

Puede especificar la clave de KMS con cualquiera de los siguientes formatos:
+ ID de clave de KMS: `1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d` 
+ ARN de clave de KMS: ` arn:aws:kms:us-west-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d` 
+ Nombre del alias de la clave: `alias/eks-auto-mode-key` 
+ ARN del alias de la clave: ` arn:aws:kms:us-west-2:111122223333:alias/eks-auto-mode-key` 

Use kubectl para aplicar la configuración de NodeClass:

```
kubectl apply -f nodeclass.yaml
```

## Activos relacionados
<a name="_related_resources"></a>
+  [Creación de una clase de nodo para Amazon EKS](create-node-class.md) 
+ Consulte más información en la Guía para desarrolladores de AWS Key Management Service
  +  [Permisos para servicios de AWS en políticas de claves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-services.html) 
  +  [Cómo cambiar una política de claves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) 
  +  [Concesiones en AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) 