Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Intégrer Oracle Cloud Infrastructure Resource Manager au processus d'automatisation
Présentation
Le service du gestionnaire de ressources pour Oracle Cloud Infrastructure (OCI) permet d'automatiser le déploiement et les opérations de toutes les ressources OCI. À l'aide du modèle d'infrastructure en tant que code (IaC), le service est basé sur Terraform, une norme industrielle à source ouverte qui permet aux ingénieurs DevOps de développer et de déployer leur infrastructure partout.
Une configuration Terraform encode l'infrastructure dans des fichiers de configuration déclaratifs. Le service du gestionnaire de ressources OCI vous permet de partager et de gérer des fichiers de configuration d'infrastructure et d'état pour plusieurs équipes et plates-formes.
Le gestionnaire de ressources OCI permet d'exécuter des scripts Terraform dans la console OCI. Il est également possible d'effectuer un appel REST ou d'utiliser l'interface de ligne de commande d'Oracle Cloud Infrastructure (interface de ligne de commande OCI), élargissant ainsi les possibilités d'intégration aux outils d'automatisation tels que OCI Devops, Jenkins, GitHub, etc.
Dans ce tutoriel, nous allons automatiser le déploiement d'une instance Oracle Autonomous Database en obtenant le mot de passe de l'administrateur de base de données en toute sécurité au moyen des clés secrètes du service de chambre forte OCI sans l'exposer dans les fichiers, de sorte que l'utilisateur d'exécution du gestionnaire de ressources OCI dispose d'un accès approprié pour créer la base de données et le mot de passe stocké
Objectifs
- Configurez l'automatisation au moyen de Terraform afin de pouvoir créer des instances avec leurs données d'identification d'accès appropriées, mais sans exposer les informations sensibles telles que le mot de passe, afin que seuls les utilisateurs autorisés puissent les utiliser dans le script Terraform.
Préalables
-
Utilisateur d'un groupe d'utilisateurs sans politique. Les autorisations appropriées seront accordées à cet utilisateur pour exécuter Terraform dans le gestionnaire de ressources OCI.
-
Seau de stockage d'objets OCI dans un compartiment spécifique (si vous voulez générer le script Terraform dans ce seau).
-
Le script Terraform sera exécuté au moyen du gestionnaire de ressources OCI et l'utilisateur doit être autorisé à :
- Créez des ressources dans le compartiment.
- Créez une instance d'Oracle Autonomous Database.
- Lisez un mot de passe de chambre forte OCI.
- Exécutez le script Terraform.
Tâche 1 : Créer une clé secrète pour Oracle Autonomous Database dans la chambre forte OCI
Nous allons créer un mot de passe dans la chambre forte OCI pour illustrer comment configurer une nouvelle ressource dans Terraform sans exposer les données sensibles.
Les clés secrètes sont des données d'identification telles que des mots de passe, des certificats, des clés SSH ou des jetons d'authentification que vous utilisez avec les services OCI. Le stockage des clés secrètes dans une chambre forte OCI offre une sécurité supérieure à celle fournie par d'autres emplacements, tels que du code ou des fichiers de configuration. Vous pouvez extraire les secrets du service de chambre forte OCI lorsque vous en avez besoin pour accéder aux ressources ou à d'autres services.
Vous pouvez créer des clés secrètes à l'aide de la console, de l'interface de ligne de commande ou de l'API OCI. Le contenu d'une clé secrète est importé dans le service à partir d'une source externe. Le service de chambre forte OCI contient les clés secrètes.
Note : Pour cette tâche, nous devons nous connecter en tant qu'utilisateur administrateur dans la console OCI. Vous devez être autorisé à créer un mot de passe dans la chambre forte OCI.
-
Connectez-vous à la console OCI, cliquez sur Identité et sécurité et sur Chambre forte.
-
Sélectionnez le compartiment dans lequel stocker les clés secrètes et cliquez sur Créer une chambre forte.
-
Entrez le nom de votre chambre forte, confirmez le compartiment et cliquez sur Créer une chambre forte.
-
Vérifiez que la chambre forte est créée et créez une clé. Cliquez sur Clés de chiffrement principales et sur Créer une clé.
-
Confirmez le compartiment et entrez un nom pour votre clé. Par exemple, entrez
autonomouskey
comme nom et cliquez sur Créer une clé.Vérifiez que la clé est créée.
-
Cliquez sur Secrets et Créer une clé secrète.
-
Nous allons créer le mot de passe de l'administrateur autonome. Entrez les informations suivantes et cliquez sur Créer une clé secrète.
- Compartiment : Sélectionner un compartiment.
- Nom : Entrez le nom de votre première clé secrète.
- Sélectionnez Génération manuelle de clé secrète pour inclure le mot de passe.
- Modèle de type de clé secrète : Entrez
Plain-Text
. - Contenu de la clé secrète : Entrez votre mot de passe.
-
Vous aurez besoin de l'OCID de la clé secrète. Pour copier l'OCID, cliquez sur Copier.
Tâche 2 : Créer des politiques pour l'utilisateur OCI
Dans ce tutoriel, considérez votre nom d'utilisateur TestUser
inclus dans un groupe nommé TestGroup
. Maintenant, créez une politique nommée TestPolicy
.
Cette tâche est importante car elle contrôle tous les privilèges nécessaires pour garantir la sécurité de l'automatisation Terraform.
Note : Pour cette tâche, nous devons nous connecter avec un utilisateur administrateur dans OCI.
-
Allez à la console OCI, cliquez sur Identité et sécurité et Politiques.
-
Cliquez sur Créer une politique.
-
Dans la section Énoncés, entrez les politiques suivantes.
-
Ces politiques autorisent le groupe
TestGroup
créé précédemment pour gérer une pile et des tâches dans le gestionnaire de ressources OCI.- Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration - Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration - Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy
-
Cette politique donne le droit de créer une instance Oracle Autonomous Database dans l'intégration de compartiment.
- Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
Le groupe peut lire le mot de passe stocké dans la chambre forte OCI au moyen de scripts Terraform.
- Allow group 'Default'/'TestGroup' to use secret-family in tenancy
-
Cette politique permet d'enregistrer les scripts Terraform sur un compartiment spécifique.
- Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
-
Cette politique permet aux utilisateurs de
TestGroup
de modifier le code dans l'éditeur de code OCI.- Allow group 'Default'/'TestGroup' to use cloud-shell in tenancy
-
Tâche 3 : Créer une pile à partir d'un modèle
Créez une pile pour une instance Oracle Autonomous Database. Nous pouvons utiliser un modèle pour cela. La première étape consiste à se connecter en tant qu'utilisateur créé dans la tâche 2.
-
Allez à la console OCI et cliquez sur le menu hamburger.
-
Cliquez sur Services de développement et sur Piles.
-
Sélectionnez votre compartiment, puis cliquez sur Créer une pile.
-
Dans la page Informations sur la pile, sélectionnez Modèle et cliquez sur Sélectionner un modèle pour générer un script Terraform pour Oracle Autonomous Database.
-
Dans l'onglet Service, sélectionnez Base de données Autonomous Transaction Processing et cliquez sur Sélectionner un modèle.
-
Vous pouvez générer les scripts Terraform et les stocker dans le seau de stockage d'objets OCI. Sélectionnez Utiliser des fournisseurs Terraform personnalisés, entrez le compartiment et le nom du seau et enregistrez votre pile.
Votre pile est enregistrée.
-
Ce modèle ne lit pas la clé secrète stockée dans votre chambre forte OCI. Pour que Terraform lise la clé secrète, nous devons modifier le code.
Cliquez sur Modifier et sélectionnez Modifier la configuration Terraform dans l'éditeur de code.
-
Vous pouvez modifier le code. Le code par défaut génère une chaîne aléatoire pour le mot de passe.
-
Fichier
main.tf
.Vous devez ajouter de nouvelles données nommées
oci_secrets_secretbundle
et les affecter aux attributs suivants :admin_password
aux sectionsautonomous_data_warehouse
etautonomous_database
.password
à la sectionautonomous_database_wallet
.
-
main.tf
- Sectionautonomous_data_warehouse
.data "oci_secrets_secretbundle" "bundle" { secret_id = var.secret_ocid } admin_password = base64decode(data.oci_secrets_secretbundle.bundle.secret_bundle_content.0.content)
-
main.tf
- Sectionautonomous_database
. -
main.tf
- Sectionautonomous_database_wallet
.
Ajoutez le code suivant dans le fichier
variables.tf
et remplacez l'OCID de votre clé secrète générée lors de la tâche 1.variable "secret_ocid" { default = "ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
-
Fichier
variables.tf
.
Note : Enregistrez vos fichiers. Déplacez le curseur de la souris sur votre pile (à droite de l'éditeur, dans le titre Autonomous Transaction Processing....), cliquez avec le bouton droit de la souris et enregistrez votre projet. Si vous quittez sans enregistrer, l'exécution suppose que vous utiliserez la chaîne aléatoire dans le script de code d'origine.
-
Tâche 4 : Tester les autorisations
Vous pouvez tester les politiques et voir comment vous avez le contrôle des instances du gestionnaire de ressources OCI, de la chambre forte OCI et d'Oracle Autonomous Database dans un compartiment spécifique.
-
Connectez-vous à la console OCI avec vos données d'identification d'utilisateur administrateur et supprimez toutes les politiques du groupe
TestGroup
dans la politiqueTestPolicy
. Cliquez sur Supprimer et confirmez. -
Maintenant, connectez-vous avec votre utilisateur dans le groupe
TestGroup
et vous ne pouvez pas voir la pile. Vous ne pouvez donc pas l'exécuter. -
Ajoutez les énoncés suivants avec l'utilisateur administrateur.
Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
Les énoncés suivants accordent à votre utilisateur dans
TestGroup
les autorisations d'utilisation de la pile du gestionnaire de ressources OCI. -
Nous avons supprimé l'autorisation pour votre utilisateur de créer une instance Oracle Autonomous Database et de lire la clé secrète dans la chambre forte OCI. Vous pouvez donc exécuter votre pile, mais sans succès. Pour effectuer le test, cliquez sur Appliquer dans la page des détails de la pile.
-
Ajoutez les autorisations Oracle Autonomous Database et OCI Vault sur
TestPolicy
.Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
Cliquez sur Appliquer dans la page des détails de la pile et vous pouvez voir que vous avez le contrôle de toutes les ressources sans exposer de mot de passe.
Tâche 5 : Appeler l'automatisation du gestionnaire de ressources OCI avec REST
Toutes les ressources d'OCI ont une API REST OCI ou une commande d'interface de ligne de commande OCI pour appeler des services tels qu'ils sont exécutés dans la console OCI.
Pour plus d'informations sur l'API REST OCI, voir API REST OCI. Vous pouvez voir la liste des commandes de l'interface de ligne de commande OCI ici : Informations de référence sur les commandes de l'interface de ligne de commande Oracle Cloud Infrastructure.
Maintenant, nous pouvons choisir d'exécuter la pile du gestionnaire de ressources OCI avec une API REST OCI ou une commande d'interface de ligne de commande OCI. Pour créer une tâche, voir CreateJob ou vous pouvez utiliser l'exemple de code suivant curl-oci.zip avec curl-oci.sh
préparé avec les paramètres OCI.
Vous devez créer la signature pour vos demandes REST. Pour plus d'informations, voir la procédure pas à pas d'appel REST pour Oracle Cloud Infrastructure (OCI) avec curl.
-
Créez un fichier nommé
STACK-RUN.sh
. Il s'agit de votre demande REST à l'aide decurl-oci.sh
(cet outil préparera votre chaîne d'autorisation avec vos informations OCI). -
Créez un fichier nommé
request.json
avec votre ID pile et votre ID compartiment. -
Ouvrez le fichier
curl-oci.sh
et modifiez les paramètres suivants. Ces paramètres sont identiques à ceux de l'installation de l'interface de ligne de commande OCI.Maintenant, exécutez le script.
Vous pouvez voir les résultats du succès.
Liens connexes
-
Utilisation des clés secrètes de chambre forte OCI pour les ressources Terraform
-
Référence de commande de l'interface de ligne de commande Oracle Cloud Infrastructure
-
Procédure pas à pas d'appel REST pour Oracle Cloud Infrastructure (OCI) avec curl
Remerciements
- Auteur - Cristiano Hoshikawa (ingénieur de la solution d'équipe A d'Oracle LAD)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Integrate Oracle Cloud Infrastructure Resource Manager with Automation Process
F98154-01
May 2024