Chapitre 3. Création de ROSA avec des clusters HCP à l’aide d’une clé de chiffrement AWS KMS personnalisée
Créez un Red Hat OpenShift Service sur AWS (ROSA) avec un cluster de plans de contrôle hébergés (HCP) à l’aide d’une clé AWS Key Management Service (KMS) personnalisée.
3.1. La ROSA avec HCP Prérequis Copier lienLien copié sur presse-papiers!
Afin de créer un ROSA avec le cluster HCP, vous devez avoir les éléments suivants:
- Cloud privé virtuel configuré (VPC)
- Les rôles à l’échelle du compte
- Configuration OIDC
- Les rôles d’opérateur
3.1.1. Créer un cloud privé virtuel pour votre ROSA avec des clusters HCP Copier lienLien copié sur presse-papiers!
Il faut disposer d’un cloud privé virtuel (VPC) pour créer ROSA avec le cluster HCP. Il est possible d’utiliser les méthodes suivantes pour créer un VPC:
- Créer un VPC à l’aide d’un modèle Terraform
- Créez manuellement les ressources VPC dans la console AWS
Les instructions Terraform sont à des fins de test et de démonstration. L’installation de votre propre système nécessite quelques modifications au VPC pour votre propre usage. Assurez-vous également que lorsque vous utilisez ce script Terraform, c’est dans la même région que vous avez l’intention d’installer votre cluster. Dans ces exemples, utilisez nous-Est-2.
Le partage de VPC sur plusieurs comptes AWS n’est actuellement pas pris en charge pour ROSA avec HCP. Il ne faut pas installer un ROSA avec le cluster HCP dans des sous-réseaux partagés à partir d’un autre compte AWS. Consultez « Multiples ROSA clusters dans un seul VPC pris en charge ? » pour plus d’informations.
Création d’un cloud privé virtuel à l’aide de Terraform
Le terraform est un outil qui vous permet de créer diverses ressources à l’aide d’un modèle établi. Le processus suivant utilise les options par défaut au besoin pour créer un ROSA avec le cluster HCP. Consultez les ressources supplémentaires pour plus d’informations sur l’utilisation de Terraform.
Conditions préalables
- La version 1.4.0 ou plus récente de Terraform est installée sur votre machine.
- « vous avez installé Git sur votre machine.
Procédure
Lancez une invite shell et clonez le dépôt Terraform VPC en exécutant la commande suivante:
git clone https://github.com/openshift-cs/terraform-vpc-example
$ git clone https://github.com/openshift-cs/terraform-vpc-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Accédez au répertoire créé en exécutant la commande suivante:
cd terraform-vpc-example
$ cd terraform-vpc-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Lancez le fichier Terraform en exécutant la commande suivante:
terraform init
$ terraform init
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le message confirmant l’initialisation apparaît lorsque ce processus se termine.
Afin de construire votre plan VPC Terraform basé sur le modèle Terraform existant, exécutez la commande plan. Il faut inclure votre région AWS. Choisissez de spécifier un nom de cluster. Après la fin du plan terraform, un fichier rosa.tfplan est ajouté au répertoire hypershift-tf. Consultez le fichier README du dépôt Terraform VPC.
terraform plan -out rosa.tfplan -var region=<region>
$ terraform plan -out rosa.tfplan -var region=<region>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquez ce fichier de plan pour construire votre VPC en exécutant la commande suivante:
terraform apply rosa.tfplan
$ terraform apply rosa.tfplan
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Facultatif: Vous pouvez capturer les valeurs des ID de sous-réseau privés, publics et de pool de machines fournis par Terraform en tant que variables d’environnement à utiliser lors de la création de votre ROSA avec le cluster HCP en exécutant les commandes suivantes:
export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
$ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que les variables ont été correctement définies avec la commande suivante:
echo $SUBNET_IDS
$ echo $SUBNET_IDS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
$ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Création manuelle d’un Cloud privé virtuel
Lorsque vous choisissez de créer manuellement votre Cloud privé virtuel (VPC) au lieu d’utiliser Terraform, accédez à la page VPC de la console AWS.
Le VPC doit répondre aux exigences indiquées dans le tableau suivant.
Exigence | Détails |
---|---|
Le nom du VPC | Il faut avoir le nom et l’identifiant VPC spécifiques lors de la création de votre cluster. |
Gamme CIDR | La gamme VPC CIDR doit correspondre à votre machine CIDR. |
La zone de disponibilité | Il vous faut une zone de disponibilité pour une seule zone, et vous en avez besoin de trois pour les zones de disponibilité pour plusieurs zones. |
Le sous-réseau public | Il faut avoir un sous-réseau public avec une passerelle NAT pour les clusters publics. Les clusters privés n’ont pas besoin d’un sous-réseau public. |
DNS nom d’hôte et résolution | Assurez-vous que le nom d’hôte DNS et la résolution sont activés. |
3.1.2. Créer les rôles et politiques STS à l’échelle du compte Copier lienLien copié sur presse-papiers!
Avant d’utiliser le service Red Hat OpenShift sur AWS (ROSA) CLI (rosa) pour créer Red Hat OpenShift Service sur AWS (ROSA) avec des clusters de plans de contrôle hébergés (HCP), créez les rôles et les politiques nécessaires à l’échelle du compte, y compris les politiques d’opérateur.
Les ROSA avec les clusters HCP nécessitent des rôles de compte et d’opérateur avec des stratégies gérées AWS jointes. Les politiques gérées par les clients ne sont pas prises en charge. En savoir plus sur les stratégies gérées par AWS pour ROSA avec les clusters HCP, consultez les stratégies gérées AWS pour les rôles de compte ROSA.
Conditions préalables
- Avec HCP, vous avez complété les prérequis AWS pour ROSA.
- Des quotas de service AWS sont disponibles.
- Le service ROSA est activé dans la console AWS.
- L’installation et la configuration de la dernière ROSA CLI (rosa) sur votre hôte d’installation.
- En utilisant le ROSA CLI, vous vous êtes connecté à votre compte Red Hat.
Procédure
Dans le cas où ils n’existent pas dans votre compte AWS, créez les rôles STS requis à l’échelle du compte et attachez les stratégies en exécutant la commande suivante:
rosa create account-roles --hosted-cp
$ rosa create account-roles --hosted-cp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Facultatif: Définir votre préfixe en tant que variable environnementale en exécutant la commande suivante:
export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
$ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Afficher la valeur de la variable en exécutant la commande suivante:
echo $ACCOUNT_ROLES_PREFIX
$ echo $ACCOUNT_ROLES_PREFIX
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
ManagedOpenShift
ManagedOpenShift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Consultez les politiques IAM gérées par AWS pour ROSA, consultez les politiques IAM gérées par AWS pour ROSA.
3.1.3. Création d’une configuration OpenID Connect Copier lienLien copié sur presse-papiers!
Lorsque vous utilisez un Red Hat OpenShift Service sur AWS cluster, vous pouvez créer la configuration OpenID Connect (OIDC) avant de créer votre cluster. Cette configuration est enregistrée pour être utilisée avec OpenShift Cluster Manager.
Conditions préalables
- Les prérequis AWS pour le service OpenShift Red Hat sont complétés sur AWS.
- Dans votre installation, vous avez installé et configuré le dernier service Red Hat OpenShift sur AWS (ROSA) CLI, rosa.
Procédure
Afin de créer votre configuration OIDC à côté des ressources AWS, exécutez la commande suivante:
rosa create oidc-config --mode=auto --yes
$ rosa create oidc-config --mode=auto --yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cette commande renvoie les informations suivantes.
Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Lors de la création de votre cluster, vous devez fournir l’identifiant de configuration OIDC. La sortie CLI fournit cette valeur pour --mode auto, sinon vous devez déterminer ces valeurs en fonction de la sortie CLI aws pour --mode manuel.
Facultatif : vous pouvez enregistrer l’identifiant de configuration OIDC en tant que variable à utiliser ultérieurement. Exécutez la commande suivante pour enregistrer la variable:
export OIDC_ID=<oidc_config_id>
$ export OIDC_ID=<oidc_config_id>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow Afficher la valeur de la variable en exécutant la commande suivante:
echo $OIDC_ID
$ echo $OIDC_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
13cdr6b
13cdr6b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
La vérification
Il est possible de répertorier les configurations OIDC possibles pour vos clusters associés à votre organisation utilisateur. Exécutez la commande suivante:
rosa list oidc-config
$ rosa list oidc-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
ID MANAGED ISSUER URL SECRET ARN 2330dbs0n8m3chkkr25gkkcd8pnj3lk2 true https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2 233hvnrjoqu14jltk6lhbhf2tj11f8un false https://oidc-r7u1.s3.us-east-1.amazonaws.com aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
ID MANAGED ISSUER URL SECRET ARN 2330dbs0n8m3chkkr25gkkcd8pnj3lk2 true https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2 233hvnrjoqu14jltk6lhbhf2tj11f8un false https://oidc-r7u1.s3.us-east-1.amazonaws.com aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.4. Créer des rôles et des politiques de l’opérateur Copier lienLien copié sur presse-papiers!
Lorsque vous utilisez un ROSA avec le cluster HCP, vous devez créer les rôles IAM d’opérateur requis pour Red Hat OpenShift Service sur AWS (ROSA) avec des déploiements de plans de contrôle hébergés (HCP). Les opérateurs de cluster utilisent les rôles d’opérateur pour obtenir les autorisations temporaires requises pour effectuer des opérations de cluster, telles que la gestion du stockage back-end, les informations d’identification des fournisseurs de cloud et l’accès externe à un cluster.
Conditions préalables
- Avec HCP, vous avez complété les prérequis AWS pour ROSA.
- Le dernier service Red Hat OpenShift sur AWS ROSA CLI (rosa) est installé et configuré sur votre hôte d’installation.
- Les rôles AWS à l’échelle du compte ont été créés.
Procédure
Définissez le nom de votre préfixe sur une variable d’environnement en utilisant la commande suivante:
export OPERATOR_ROLES_PREFIX=<prefix_name>
$ export OPERATOR_ROLES_PREFIX=<prefix_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Afin de créer vos rôles d’opérateur, exécutez la commande suivante:
rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
$ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La ventilation suivante fournit des options pour la création de rôles d’opérateur.
rosa create operator-roles --hosted-cp
$ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX
1 --oidc-config-id=$OIDC_ID
2 --installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Il faut fournir un préfixe lors de la création de ces rôles d’opérateur. Le fait de ne pas le faire produit une erreur. Consultez les ressources supplémentaires de cette section pour obtenir des informations sur le préfixe de l’opérateur.
- 2
- Cette valeur est l’identifiant de configuration OIDC que vous avez créé pour votre ROSA avec le cluster HCP.
- 3
- Cette valeur est le rôle d’installateur ARN que vous avez créé lorsque vous avez créé les rôles de compte ROSA.
Il faut inclure le paramètre --hosted-cp pour créer les rôles corrects pour ROSA avec les clusters HCP. Cette commande renvoie les informations suivantes.
Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Les rôles d’opérateur sont maintenant créés et prêts à être utilisés pour créer votre ROSA avec le cluster HCP.
La vérification
Il est possible de répertorier les rôles d’opérateur associés à votre compte ROSA. Exécutez la commande suivante:
rosa list operator-roles
$ rosa list operator-roles
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Après l’exécution de la commande, il affiche tous les préfixes associés à votre compte AWS et note combien de rôles sont associés à ce préfixe. Lorsque vous avez besoin de voir tous ces rôles et leurs détails, entrez "Oui" sur l’invite détaillée pour avoir ces rôles listés avec des détails.
3.1.5. Création d’un cluster ROSA à l’aide d’une clé AWS KMS personnalisée Copier lienLien copié sur presse-papiers!
Il est possible de créer un cluster Red Hat OpenShift Service sur AWS (ROSA) avec une clé KMS fournie par le client qui est utilisée pour chiffrer soit les volumes racine des nœuds, la base de données etcd, soit les deux. L’ARN de clé KMS différent peut être fourni pour chaque option.
Le ROSA avec HCP ne configure pas automatiquement la classe de stockage par défaut pour chiffrer les volumes persistants avec la clé KMS fournie par le client. C’est quelque chose qui peut être configuré dans le cluster après l’installation.
Procédure
Créez une clé KMS personnalisée gérée par le client AWS en exécutant la commande suivante:
KMS_ARN=$(aws kms create-key --region $AWS_REGION --description 'Custom ROSA Encryption Key' --tags TagKey=red-hat,TagValue=true --query KeyMetadata.Arn --output text)
$ KMS_ARN=$(aws kms create-key --region $AWS_REGION --description 'Custom ROSA Encryption Key' --tags TagKey=red-hat,TagValue=true --query KeyMetadata.Arn --output text)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cette commande enregistre la sortie Amazon Resource Name (ARN) de cette clé personnalisée pour d’autres étapes.
NoteLes clients doivent fournir les --tags TagKey=red-hat,TagValue=vrai argument qui est requis pour une clé KMS client.
La clé KMS a été créée en exécutant la commande suivante:
echo $KMS_ARN
$ echo $KMS_ARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définissez votre identifiant de compte AWS sur une variable d’environnement.
AWS_ACCOUNT_ID=<aws_account_id>
$ AWS_ACCOUNT_ID=<aws_account_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez l’ARN pour le rôle d’installateur à l’échelle du compte et les rôles d’opérateur que vous avez créés dans l’étape précédente à la section Statement.Principal.AWS dans le fichier. Dans l’exemple suivant, le rôle ARN pour le rôle par défaut ManagedOpenShift-HCP-ROSA-Installer-Role est ajouté:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Confirmez les détails du fichier de stratégie créé en exécutant la commande suivante:
cat rosa-key-policy.json
$ cat rosa-key-policy.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquez la stratégie de clé nouvellement générée à la clé KMS personnalisée en exécutant la commande suivante:
aws kms put-key-policy --key-id $KMS_ARN \ --policy file://rosa-key-policy.json \ --policy-name default
$ aws kms put-key-policy --key-id $KMS_ARN \ --policy file://rosa-key-policy.json \ --policy-name default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez le cluster en exécutant la commande suivante:
NoteLorsque le nom de votre cluster est supérieur à 15 caractères, il contiendra un préfixe de domaine généré automatiquement en tant que sous-domaine pour votre cluster fourni sur *.openshiftapps.com.
Afin de personnaliser le sous-domaine, utilisez l’indicateur --domain-prefix. Le préfixe de domaine ne peut pas dépasser 15 caractères, doit être unique et ne peut pas être modifié après la création de clusters.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Cette clé KMS ARN est utilisée pour chiffrer tous les volumes de racine des nœuds de travail. Il n’est pas nécessaire si seulement un cryptage de base de données etcd est nécessaire.
- 2
- Cette clé KMS ARN est utilisée pour chiffrer la base de données etcd. La base de données etcd est toujours cryptée par défaut avec un bloc de chiffrement AES, mais peut être cryptée à la place avec une clé KMS. Il n’est pas nécessaire si seul le cryptage du volume racine du nœud est nécessaire.
La vérification
Il est possible de vérifier que votre clé KMS fonctionne à l’aide d’OpenShift Cluster Manager.
- Accédez à OpenShift Cluster Manager et sélectionnez Instances.
- Choisissez votre instance.
- Cliquez sur l’onglet Stockage.
- Copiez l’ID de clé KMS.
- Cherchez et sélectionnez Key Management Service.
- Entrez votre identifiant de clé KMS copié dans le champ Filtre.