El 6 de abril, se lanzó una nueva versión de los clústeres de Anthos en AWS (GKE en AWS). Consulta las notas de la versión para obtener más información.

Usa un CMK administrado por el cliente para encriptar volúmenes

Los clústeres de Anthos en AWS usan AWS Key Management Service (KMS) para encriptar volúmenes de EBS. Los clústeres de Anthos en AWS 1.7 y versiones posteriores admiten la encriptación de volúmenes con claves maestras del cliente (CMK) administradas por el cliente. Las versiones 1.6.x de clústeres de Anthos en AWS y versiones anteriores solo admiten claves maestras de cliente administradas de AWS.

En este tema, se describe cómo configurar la CMK administrada por el cliente para encriptar volúmenes. Si no configuras la CMK administrada por el cliente, los clústeres de Anthos en AWS usan CMK administrada de AWS de forma predeterminada.

Descripción general

Los siguientes componentes de clústeres de Anthos en AWS admiten volúmenes encriptados por CMK administradas por el cliente:

  • Volumen raíz del host de bastión
  • Volúmenes raíz del servicio de administración
  • Volúmenes de datos etcd del servicio de administración
  • Volúmenes raíz del plano de control del clúster de usuario
  • Volúmenes de datos etcd del plano de control del clúster de usuario
  • Volúmenes raíz del nodo del clúster de usuario

Especifica las claves en tu servicio de administración, clúster y configuración de grupo de nodos.

Requisitos previos

Para usar la CMK administrada por el cliente en los volúmenes raíz de clústeres de Anthos en AWS, necesitas lo siguiente:

Crea una política de claves

Tus claves de AWS KMS deben tener una política de clave que permita que los clústeres de Anthos en AWS creen y lean volúmenes encriptados con una CMK administrada por el cliente. En la siguiente sección, se proporciona un ejemplo de una política. Para crear la política, sigue estos pasos:

  1. Desde tu directorio de anthos-aws, usa terraform para obtener el ID de tu servicio de administración.

    cd anthos-aws
    terraform output cluster_id
    El resultado incluye el ID del servicio de administración. En el siguiente ejemplo, el ID es gke-12345abc.
    terraform output cluster_id
    gke-12345abc
    

  2. Crea una política de claves de AWS KMS con el contenido siguiente:

    {
        "Version": "2012-10-17",
        "Id": "key-consolepolicy-3",
        "Statement": [
            {
                "Sid": "Enable IAM User Permissions",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::ACCOUNT_NUMBER:root"
                },
                "Action": "kms:*",
                "Resource": "*"
            },
            {
                "Sid": "Allow creating encrypted EBS volumes for EC2 use",
                "Effect": "Allow",
                "Principal": {
                    "AWS": [
                        "arn:aws:iam::ACCOUNT_NUMBER:role/gke-CLUSTER_ID-management",
                        "arn:aws:iam::ACCOUNT_NUMBER:user/AWS_USER",
                        "arn:aws:iam::ACCOUNT_NUMBER:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
                    ]
                },
                "Action": [
                    "kms:GenerateDataKeyWithoutPlaintext",
                    "kms:Decrypt"
                ],
                "Resource": "*",
                "Condition": {
                    "StringEquals": {
                        "kms:CallerAccount": "ACCOUNT_NUMBER",
                        "kms:ViaService": "ec2.AWS_REGION.amazonaws.com"
                    }
                }
            },
            {
                "Sid": "Allow attaching encrypted EBS volumes for EC2 Use",
                "Effect": "Allow",
                "Principal": {
                    "AWS": [
                        "arn:aws:iam::ACCOUNT_NUMBER:role/CLUSTER_ID-management",
                        "arn:aws:iam::ACCOUNT_NUMBER:role/CLUSTER_ID-controlplane",
                        "arn:aws:iam::ACCOUNT_NUMBER:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
                    ]
                },
                "Action": [
                    "kms:CreateGrant",
                    "kms:ListGrants",
                    "kms:RevokeGrant"
                ],
                "Resource": "*",
                "Condition": {
                    "StringEquals": {
                        "kms:CallerAccount": "ACCOUNT_NUMBER",
                        "kms:ViaService": "ec2.AWS_REGION.amazonaws.com"
                    }
                }
            }
        ]
    }
    

    Reemplaza lo siguiente:

    • ACCOUNT_NUMBER: tu número de cuenta de AWS, por ejemplo, 1234567890
    • CLUSTER_ID: el ID del clúster de administración de clústeres de Anthos en AWS, por ejemplo, gke-12345678.
    • AWS_USER: tu nombre de usuario de AWS
    • AWS_REGION: a región de AWS en la que se ejecutan tus clústeres de clústeres de Anthos en AWS, por ejemplo us-east1.

Configura recursos para usar una CMK administrada por el cliente

En esta sección, se explica cómo configurar CMK administrada por el cliente para componentes de clústeres de Anthos en AWS. Antes de actualizar los componentes existentes, consulta Usa CMK con clústeres existentes.

Servicio de administración y host de bastión

Configura un CMK administrado por el cliente para el volumen raíz del host de bastión, el volumen raíz del servicio de administración y los volúmenes de datos etcd del servicio de administración en tu anthos-gke.yaml antes de configurar el servicio de administración. Para obtener más información, consulta Integra la infraestructura existente y la referencia AWSManagementService.

Volúmenes del plano de control del clúster de usuario

Configura una CMK administrada por el cliente para el plano de control de tu clúster de usuario y volúmenes de datos etcd en tu definición de AWSCluster. Para obtener más información, consulta Crea un clúster de usuario personalizado.

Volúmenes raíz del nodo del clúster de usuario

Configura una CMK administrada por el cliente en los volúmenes raíz de los nodos del clúster de usuario en tu definición de AWSNodePool. Para obtener más información, consulta Crea un clúster de usuario personalizado.

Usa CMK con clústeres existentes

Puedes agregar la configuración de CMK administrada por el cliente a los siguientes componentes existentes:

  • Volumen raíz del host de bastión
  • Volúmenes raíz del servicio de administración
  • Volúmenes raíz del plano de control del clúster de usuario
  • Volúmenes raíz del nodo del clúster de usuario

Los clústeres de Anthos en AWS recrean estos volúmenes después de un cambio en la actualización o la configuración. Para agregar la configuración de CMK administrada por el cliente a los componentes existentes, sigue las instrucciones en Actualiza clústeres de Anthos en AWS. Cuando modifiques la configuración de tus recursos, modifica los siguientes campos:

Recurso Campo
AWSManagementService spec.rootVolume and spec.bastionHost.rootVolume
AWSCluster spec.controlPlane.rootVolume
AWSNodePools spec.rootVolume

Cuando completes la actualización, los clústeres de Anthos en AWS crearán recursos nuevos con los volúmenes vinculados de CMK administrada por el cliente.

¿Qué sigue?