Servicio de gestión de AWS

El recurso AWSManagementService contiene información de configuración para su servicio de administración de GKE en AWS.

Antes de crear el servicio de administración, configure un archivo YAML llamado anthos-gke.yaml . La herramienta anthos-gke utiliza esta configuración al crearlo.

El contenido de su archivo anthos-gke.yaml depende de si utiliza anthos-gke para crear una AWS Virtual Private Cloud (VPC) dedicada para usted o si utiliza una AWS VPC existente .

VPC dedicada

apiVersion: multicloud.cluster.gke.io/v1
kind: AWSManagementService
metadata:
  name: management
spec:
  version: ANTHOS_CLI_VERSION
  region: AWS_REGION
  authentication:
    awsIAM:
      adminIdentityARNs:
      - ADMIN_AWS_IAM_ARN
  kmsKeyARN: KMS_KEY_ARN
  databaseEncryption:
    kmsKeyARN: KMS_KEY_ARN
  googleCloud:
    projectID: GCP_PROJECT_ID
    serviceAccountKeys:
      managementService: MANAGEMENT_KEY_PATH
      connectAgent: CONNECT_KEY_PATH
      node: NODE_KEY_PATH
  iam:
      permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
      path: IAM_PATH
  dedicatedVPC:
    vpcCIDRBlock: VPC_CIDR_BLOCK
    availabilityZones:
    - ZONE_1
    - ZONE_2
    - ZONE_3
    privateSubnetCIDRBlocks:
    - PRIVATE_CIDR_BLOCK_1
    - PRIVATE_CIDR_BLOCK_2
    - PRIVATE_CIDR_BLOCK_3
    publicSubnetCIDRBlocks:
    - PUBLIC_CIDR_BLOCK_1
    - PUBLIC_CIDR_BLOCK_2
    - PUBLIC_CIDR_BLOCK_3
  # Optional section
  rootVolume:
    volumeType: ROOT_VOLUME_TYPE
    iops: ROOT_VOLUME_IOPS
    kmsKeyARN: ROOT_VOLUME_KEY
  dataVolume:
    volumeType: DATA_VOLUME_TYPE
    iops: DATA_VOLUME_IOPS
    kmsKeyARN: DATA_VOLUME_KEY
  tags:
    tag-name: tag-value
  bastionHost:
    allowedSSHCIDRBlocks:
    - SSH_CIDR_BLOCK
    rootVolume:
      volumeType: ROOT_VOLUME_TYPE
      iops: ROOT_VOLUME_IOPS
      kmsKeyARN: ROOT_VOLUME_KEY
  bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
  proxy: PROXY_JSON_FILE
  terraform:
    invokeManually: No
    stateGCSBucket: GCS_BUCKET_NAME

VPC existente

apiVersion: multicloud.cluster.gke.io/v1
kind: AWSManagementService
metadata:
  name: management
spec:
  version: ANTHOS_CLI_VERSION
  region: AWS_REGION
  authentication:
    awsIAM:
      adminIdentityARNs:
      - ADMIN_AWS_IAM_ARN
  kmsKeyARN: KMS_KEY_ARN
  databaseEncryption:
    kmsKeyARN: KMS_KEY_ARN
  securityGroupIDs:
    - SECURITY_GROUP_IDS
  googleCloud:
    projectID: GCP_PROJECT_ID
    serviceAccountKeys:
      managementService: MANAGEMENT_KEY_PATH
      connectAgent: CONNECT_KEY_PATH
      node: NODE_KEY_PATH
  iam:
      permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
      path: IAM_PATH
  existingVPC:
    subnetID: [MANAGEMENT_SUBNET_ID]
    allowedSSHSecurityGroupIDs: [SSH_SECURITY_GROUPS]
  # Optional fields
  rootVolume:
    volumeType: ROOT_VOLUME_TYPE
    iops: ROOT_VOLUME_IOPS
    kmsKeyARN: ROOT_VOLUME_KEY
  dataVolume:
    volumeType: DATA_VOLUME_TYPE
    iops: DATA_VOLUME_IOPS
    kmsKeyARN: DATA_VOLUME_KEY
  ubuntuRepositoryMirror: 'packages.cloud.google.com'
  bastionHost:
    subnetID: [BASTION_HOST_SUBNET_ID]
    allowedSSHCIDRBlocks:
    - [SSH_CIDR_BLOCK]
    rootVolume:
      volumeType: ROOT_VOLUME_TYPE
      iops: ROOT_VOLUME_IOPS
      kmsKeyARN: ROOT_VOLUME_KEY
  bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
  tags:
    tag-name: tag-value
  proxy: PROXY_JSON_FILE
  terraform:
    invokeManually: No
    stateGCSBucket: GCS_BUCKET_NAME

Las siguientes secciones describen estos campos.

spec.version

El valor de spec.version corresponde a la versión del servicio de administración que crea anthos- gke . Esta versión coincide con la salida de anthos-gke version . Por ejemplo, aws-1.14.1-gke.0 .

spec.region

El valor de spec.region es la región de AWS donde desea implementar el servicio de administración. Por ejemplo, us-east-1 .

spec.authentication.awsIAM

El valor de spec.authentication.awsIAM.adminIdentityARNs es una cadena con el nombre de recurso de Amazon (ARN) de un usuario de AWS IAM con permisos para crear un servicio de administración de GKE en AWS. Por ejemplo, arn:aws:iam::123456789:user/someuser .

spec.kmsKeyARN

El valor de spec.kmsKeyARN es una cadena con el nombre del recurso de Amazon (ARN) o el alias de la clave de AWS KMS creada en Prerrequisitos . GKE en AWS utiliza la clave para el cifrado de sobres . Por ejemplo, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee .

spec.databaseEncryption

El valor de spec.databaseEncryption.kmsKeyARN es una cadena con el nombre de recurso de Amazon (ARN) o el alias de clave de la clave de AWS KMS que GKE en AWS utiliza para cifrar los secretos de la capa de aplicación en los clústeres. Por ejemplo, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee .

spec.securityGroupIDs

El valor de spec.securityGroupIDs es una lista de IDs de grupos de seguridad de AWS adicionales asignados a la máquina virtual del servicio de administración. Por ejemplo, [sg-00123456789abcd, sg-00123456789def1]`.

spec.dedicatedVPC

Este campo representa la configuración de VPC deseada.

Nombre Descripción Tipo Ejemplo
vpcCIDRBlock El bloque CIDR de la VPC de AWS deseada. Debe tener entre /16 y /28 bits. string 10.0.0.0/16
zonas de disponibilidad Zonas de disponibilidad para implementar réplicas del plano de control. Cada zona tendrá su propia subred y necesitará un bloque CIDR separado. list(string) [us-east-1a, us-east-1b]
BloquesCIDR de subred privada Bloque CIDR para subredes privadas dentro de la VPC en cada zona de disponibilidad. Debe ser un subconjunto de vpcCIDRBlock . Se requiere una subred por zona de disponibilidad. list(string) [10.0.101.0/24, 10.0.102.0/24]
publicSubnetCIDRBlocks Bloque CIDR para subredes públicas dentro de la VPC en cada zona de disponibilidad. Debe ser un subconjunto de vpcCIDRBlock . Se requiere una subred por zona de disponibilidad. list(string) [10.0.1.0/24, 10.0.2.0/24]
bastiónPermitidoSSHCIDRBlocks Bloques CIDR para permitir el acceso SSH entrante. Este campo está obsoleto en GKE en AWS 1.5. Use spec.bastionHost en la versión 1.5 o posterior. string [104.132.0.0/14]

spec.existingVPC

Los campos bajo spec.existingVPC configuran GKE en AWS para usar una VPC de AWS existente.

Nombre Descripción Tipo Ejemplo
ID de subred ID de subred donde se ejecuta el servicio de administración. string subred-00123456789ab
ID de grupo de seguridad SSH permitidos Lista de ID de grupos de seguridad a los que se les permite acceso SSH dentro de la VPC. lista(cadena) [sg-00123456789abcd, sg-00123456789def1]

spec.googleCloud

Los campos en spec.googleCloud configuran su Google Cloud claves de cuenta de proyecto y de servicio IAM.

Nombre Descripción Tipo Ejemplo
ID del proyecto Google Cloud Google Cloud proyecto. string my-gcp-project-id
Claves de cuenta de servicio Rutas de archivos a las claves de la cuenta de servicio . Claves de cuenta de servicio

spec.googleCloud.serviceAccountKeys

Los campos de spec.googleCloud.serviceAccountKeys incluyen las rutas de los archivos locales a las claves de la cuenta de servicio de GCP. Consulte los requisitos previos para obtener descripciones detalladas de cada clave.

Nombre Descripción Tipo Ejemplo
managementService Clave de cuenta de servicio utilizada por el clúster de administración cadena path/to/key/management-sa-key.json
connectAgent Clave de cuenta de servicio utilizada por el agente de GKE Hub Connect cadena path/to/key/hub-sa-key.json
node Clave de cuenta de servicio utilizada por los nodos cadena path/to/key/node-sa-key.json

spec.iam

Los campos bajo spec.iam configuran parámetros opcionales de AWS IAM para su entorno de GKE en AWS.

Nombre Descripción Tipo Ejemplo
permisosLímite ARN de los límites de permisos para roles de IAM string arn:aws:iam::126285863215:policy/testPolicyBoundary
camino Ruta hacia el rol de IAM string /org_abc/team_abc/member_abc/

spec.bastionHost

La sección spec.bastionHost es opcional y describe un host bastión.

Un host bastión es una instancia de EC2 ubicada en una subred pública. Permite el acceso SSH entrante desde un bloque CIDR específico y tiene acceso SSH saliente a su servicio de administración de GKE en AWS y a los clústeres de usuarios.

Puede crear un host bastión para instalaciones dedicatedVPC o existingVPC . El campo allowedSSHCIDRBlocks " especifica el rango de direcciones entrantes permitidas y no debe estar vacío.

Si no existe un host bastión, GKE en AWS crea un nuevo host bastión.

  • Para una instalación dedicatedVPC , GKE en AWS crea una subred.
  • Para una instalación existingVPC , debe proporcionar una subred para el host bastión y asegurarse de que esta subred tenga conectividad con su VPC.

Puede modificar su host bastión cambiando o eliminando el campo spec.bastionHost y ejecutando anthos-gke aws management init , seguido de anthos-gke aws management apply .

Nombre Descripción Tipo Ejemplo
ID de subred El ID de la subred donde se ejecuta el host bastión. En instalaciones existingVPC , la subred debe permitir el acceso desde el puerto 22. Además, asegúrese de que su VPC permita el acceso entrante desde esta subred. En instalaciones dedicatedVPC , no especifique este campo. GKE en AWS proporcionará a la subred el acceso necesario. cadena subred-003bdf7b0f5e21e45
BloquesSSHCIDR permitidos Bloques CIDR para permitir el acceso SSH entrante desde. list(string) [104.132.0.0/14]
volumen raíz Un objeto que describe el volumen raíz del host bastión. object {volumeType: gp2}

spec.rootVolume, spec.dataVolume y spec.bastionHost.rootVolume

La siguiente tabla describe los campos comunes para los siguientes objetos:

  • spec.rootVolume , para volúmenes de disco raíz del plano de control
  • spec.dataVolume , para volúmenes de disco de datos del plano de control
  • spec.bastionHost.rootVolume , para volúmenes de disco raíz del host bastión
Nombre Descripción Tipo Ejemplo Requerido
tipo de volumen El tipo de volumen de AWS EBS del nodo. Puede ser gp2 (predeterminado) o gp3 . string gp2 No
yops Cantidad de operaciones de E/S por segundo (IOPS) aprovisionadas para volúmenes. Solo es válido cuando volumeType es GP3 . Para más información, consulte Volúmenes SSD de propósito general (gp3) . integer 5000 No
kmsKeyARN El ARN de la clave AWS KMS utilizada para cifrar el volumen EBS. Para obtener más información, consulte "Uso de una CMK administrada por el cliente para cifrar volúmenes" . string arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee No

spec.tags

Nombre Descripción Tipo Ejemplo
etiquetas Metadatos de clave/valor opcionales asignados a cada recurso de AWS que respalda el servicio de administración. map(string) {Entorno: Producción, Equipo: Analítica}

spec.proxy

El campo spec.proxy configura un proxy HTTP/HTTPS opcional.

Nombre Descripción Tipo Ejemplo
apoderado Ruta al archivo de configuración del proxy . Ruta relativa desde anthos-gke.yaml proxy.json

spec.bootstrapS3Bucket

El campo spec.bootstrapS3Bucket configura un nombre de depósito S3 para GKE en AWS.

Nombre Descripción Tipo Ejemplo
bootstrapS3Bucket Campo opcional para el nombre del bucket de AWS S3 donde GKE en AWS almacena la información de configuración. Si desea crear varios servicios de administración de GKE en AWS en la misma región de AWS, configure este valor con un nombre de bucket único. string example-s3-bucket

spec.terraform

El campo spec.terraform.invokeManually configura el comando anthos-gke para no crear un servicio de administración.

Nombre Descripción Tipo Ejemplo
invocar manualmente Campo opcional que configura la herramienta de línea de comandos anthos-gke para que no cree un servicio de administración después de compilar y validar la configuración. Si define invokeManually " como Yes , podrá editar y aplicar los archivos de configuración de Terraform manualmente. Yes , No Yes
stateGCSBucket Campo opcional que especifica un depósito de Google Cloud Storage preexistente para que Terraform almacene sus datos de configuración. string example-GCS-bucket