AWSManagementService

La ressource AWSManagementService contient des informations de configuration pour votre service de gestion GKE sur AWS.

Vous devez configurer un fichier YAML nommé anthos-gke.yaml avant de créer votre service de gestion. L'outil anthos-gke utilise la configuration lors de la création de votre service de gestion.

Le contenu de votre fichier anthos-gke.yaml varie selon que vous utilisez anthos-gke pour créer un cloud privé virtuel AWS (VPC) dédié ou si vous utilisez un cloud privé virtuel AWS existant.

VPC dédié

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 existant

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

Les sections suivantes décrivent ces champs.

spec.version

La valeur de spec.version correspond à la version du service de gestion anthos- gke créé. La version correspond à la sortie de anthos-gke version. Par exemple, aws-1.14.1-gke.0.

spec.region

La valeur de spec.region correspond à la région AWS dans laquelle vous souhaitez déployer le service de gestion. Exemple :us-east-1

spec.authentication.awsIAM

La valeur de spec.authentication.awsIAM.adminIdentityARNs est une chaîne dotée du nom de ressource Amazon (ARN) d'un utilisateur AWS IAM disposant des autorisations pour créer un service de gestion GKE sur AWS. Exemple : arn:aws:iam::123456789:user/someuser.

spec.kmsKeyARN

La valeur de spec.kmsKeyARN est une chaîne qui contient le nom de ressource Amazon (ARN) de la clé KMS AWS créée dans la section Conditions préalables. GKE sur AWS utilise la clé pour le chiffrement encapsulé. Par exemple, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.

spec.databaseEncryption

La valeur de spec.databaseEncryption.kmsKeyARN est une chaîne contenant le nom de ressource Amazon (ARN) ou l'alias de la clé KMS AWS que GKE sur AWS utilise pour chiffrer les secrets de la couche d'application dans les clusters. Exemple : arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.

spec.securityGroupIDs

La valeur de spec.securityGroupIDs correspond à une liste d'ID de groupe de sécurité AWS supplémentaires attribués à la VM de service de gestion. Par exemple, [sg-00123456789abcd, sg-00123456789def1].

spec.dedicatedVPC

Ce champ représente les paramètres VPC souhaités.

Nom Description Type Exemple
vpcCIDRBlock Bloc CIDR du VPC AWS souhaité. La valeur doit être comprise entre /16 et /28 bits. string 10.0.0.0/16
availabilityZones Zones de disponibilité dans lesquelles déployer des instances de plan de contrôle dupliquées. Chaque zone possède son propre sous-réseau et nécessite un bloc CIDR distinct. list(string) [us-east-1a, us-east-1b]
privateSubnetCIDRBlocks Bloc CIDR pour les sous-réseaux privés au sein du VPC dans chaque zone de disponibilité. Doit être un sous-ensemble de vpcCIDRBlock. Vous devez disposer d'un sous-réseau par zone de disponibilité. list(string) [10.0.101.0/24, 10.0.102.0/24]
publicSubnetCIDRBlocks Bloc CIDR pour les sous-réseaux publics au sein du VPC dans chaque zone de disponibilité. Doit être un sous-ensemble de vpcCIDRBlock. Vous devez disposer d'un sous-réseau par zone de disponibilité. list(string) [10.0.1.0/24, 10.0.2.0/24]
bastionAllowedSSHCIDRBlocks Blocs CIDR à partir desquels autoriser l'accès SSH entrant. Ce champ est obsolète dans GKE sur AWS 1.5. Utilisez spec.bastionHost dans la version 1.5 ou ultérieure. string [104.132.0.0/14]

spec.existingVPC

Les champs sous spec.existingVPC configurent GKE sur AWS pour utiliser un VPC AWS existant.

Nom Description Type Exemple
subnetID ID du sous-réseau dans lequel le service de gestion s'exécute. string subnet-00123456789ab
allowedSSHSecurityGroupIDs Liste des ID de groupe de sécurité autorisant l'accès SSH au sein du VPC. list(string) [sg-00123456789abcd, sg-00123456789def1]

spec.googleCloud

Les champs sous spec.googleCloud configurent votre projet Google Cloud et vos clés de compte de service IAM.

Nom Description Type Exemple
projectID Projet Google Cloud Google Cloud. string my-gcp-project-id
serviceAccountKeys Chemins d'accès aux clés de compte de service. serviceAccountKeys

spec.googleCloud.serviceAccountKeys

Les champs situés sous spec.googleCloud.serviceAccountKeys incluent des chemins d'accès locaux vers les clés de compte de service GCP. Pour obtenir une description détaillée de chaque clé, consultez la section Prérequis.

Nom Description Type Exemple
managementService Clé de compte de service utilisée par le cluster de gestion chaîne path/to/key/management-sa-key.json
connectAgent Clé de compte de service utilisée par l'agent GKE Hub Connect chaîne path/to/key/hub-sa-key.json
node Clé de compte de service utilisée par les nœuds chaîne path/to/key/node-sa-key.json

spec.iam

Les champs sous spec.iam configurent les paramètres facultatifs IAM AWS pour votre environnement GKE sur AWS.

Nom Description Type Exemple
permissionsBoundary ARN des limites d'autorisations pour les rôles IAM string arn:aws:iam::126285863215:policy/testPolicyBoundary
chemin d'accès Chemin d'accès au rôle IAM string /org_abc/team_abc/member_abc/

spec.bastionHost

La section spec.bastionHost est facultative et décrit un hôte bastion.

Un hôte bastion est une instance EC2 placée dans un sous-réseau public. Elle autorise l'accès SSH entrant à partir d'un bloc CIDR spécifié et dispose d'un accès SSH sortant à votre service de gestion GKE sur AWS et aux clusters d'utilisateur.

Vous pouvez créer un hôte bastion pour les installations dedicatedVPC ou existingVPC. Le champ allowedSSHCIDRBlocks spécifie la plage d'adresses entrantes autorisées et ne doit pas être vide.

Si aucun hôte bastion n'existe, GKE sur AWS en crée un.

  • Pour une installation dedicatedVPC, GKE sur AWS crée un sous-réseau.
  • Pour une installation existingVPC, vous devez spécifier un sous-réseau pour l'hôte bastion et vous assurer que ce sous-réseau dispose d'une connectivité à votre VPC.

Vous pouvez modifier votre hôte bastion en modifiant ou en supprimant le champ spec.bastionHost et en exécutant anthos-gke aws management init, suivi de anthos-gke aws management apply.

Nom Description Type Exemple
subnetID ID du sous-réseau d'exécution de l'hôte bastion. Pour les installations existingVPC, le sous-réseau doit autoriser l'entrée depuis l'emplacement à partir duquel vous y accédez sur le port 22. Assurez-vous également que votre VPC autorise l'accès entrant depuis ce sous-réseau. Pour les installations en dedicatedVPC, ne spécifiez pas ce champ. GKE sur AWS provisionne le sous-réseau avec l'accès requis. chaîne subnet-003bdf7b0f5e21e45
allowedSSHCIDRBlocks Blocs CIDR à partir desquels autoriser l'accès SSH entrant. list(string) [104.132.0.0/14]
rootVolume Objet décrivant le volume racine d'un hôte bastion. object {volumeType: gp2}

spec.rootVolume, spec.dataVolume et spec.bastionHost.rootVolume

Le tableau suivant décrit les champs courants des objets suivants :

  • spec.rootVolume pour les volumes de disque racine du plan de contrôle
  • spec.dataVolume pour les volumes de disque de données du plan de contrôle
  • spec.bastionHost.rootVolume pour les volumes de disque racine de l'hôte bastion
Nom Description Type Exemple Requis
volumeType Type de volume EBS AWS du nœud. Peut être gp2 (par défaut), ou gp3. string gp2 no
iops Nombre d'opérations d'E/S par seconde (IOPS) provisionné pour les volumes. Valable uniquement lorsque la valeur de volumeType est GP3. Pour plus d'informations, consultez la section Volumes SSD à usage général (gp3). integer 5000 no
kmsKeyARN ARN de la clé KMS AWS utilisée pour chiffrer le volume EBS. Pour plus d'informations, consultez la page Utiliser des clés gérées par le client (CMK) pour chiffrer des volumes. string arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee no

spec.tags

Nom Description Type Exemple
tags Métadonnées clé/valeur facultatives attribuées à chaque ressource AWS compatible avec le service de gestion. map(string) {Environment: Production, Team: Analytics}

spec.proxy

Le champ spec.proxy configure un proxy HTTP/HTTPS facultatif.

Nom Description Type Exemple
proxy Chemin d'accès au fichier de configuration du proxy. Chemin d'accès relatif issu de anthos-gke.yaml proxy.json

spec.bootstrapS3Bucket

Le champ spec.bootstrapS3Bucket configure un nom de bucket S3 pour GKE sur AWS .

Nom Description Type Exemple
bootstrapS3Bucket Champ facultatif du nom du bucket AWS S3 dans lequel GKE sur AWS stocke les informations de configuration. Si vous souhaitez créer plusieurs services de gestion de GKE sur AWS dans la même région AWS, définissez cette valeur sur un nom de bucket unique. string example-s3-bucket

spec.terraform

Le champ spec.terraform.invokeManually configure la commande anthos-gke afin de ne pas créer de service de gestion.

Nom Description Type Exemple
invokeManually Champ facultatif qui configure l'outil de ligne de commande anthos-gke afin de ne pas créer de service de gestion après avoir créé et validé votre configuration. Si vous définissez invokeManually sur Yes, vous pouvez modifier et appliquer manuellement les fichiers de configuration Terraform. Yes, No Yes
stateGCSBucket Champ facultatif qui spécifie un bucket Google Cloud Storage préexistant pour que Terraform puisse stocker ses données de configuration. string example-GCS-bucket