Conditions préalables à l'utilisation de l'orchestrateur de règles

Cette page décrit les conditions préalables à l'utilisation de la fonctionnalité d'orchestrateur de règles dans VM Manager.

Configurer un projet de quota pour les orchestrations d'organisations et de dossiers

Lorsque vous utilisez des orchestrateurs de règles pour gérer les ressources de règles d'OS dans votre organisation ou vos dossiers, vous envoyez des requêtes à une API basée sur le client. Un projet de quota est requis pour les API basées sur le client. Pour en savoir plus sur les API basées sur le client et la configuration de projets de quota, consultez la page Présentation des projets de quota.

Lorsque vous utilisez gcloud CLI ou l'API REST pour appeler les méthodes de l'orchestrateur de règles, spécifiez le projet de quota comme suit:

gcloud

Définissez votre projet de quota dans la propriété de configuration de la gcloud CLI:

gcloud config set billing/quota_project QUOTA_PROJECT_ID

Remplacez QUOTA_PROJECT_ID par l'ID du projet de quota.

Vous pouvez également définir le projet de quota pour une commande spécifique à l'aide de l'option --billing-project, qui est prioritaire sur la propriété de configuration.

REST

Ajoutez l'en-tête HTTP x-goog-user-project pour spécifier un projet de quota dans chaque requête. Pour en savoir plus, consultez la section Définir le projet de quota avec une requête REST.

Activer l'API OS Config

Pour utiliser la fonctionnalité d'orchestrateur de règles dans VM Manager, activez l'API OS Config dans les projets suivants:

  • Pour les orchestrations au niveau de l'organisation et du dossier, activez l'API OS Config pour le projet de quota.
  • Pour les orchestrations au niveau du projet, activez l'API OS Config dans le projet dans lequel vous créez des orchestrateurs de règles.

Pour en savoir plus, consultez Activer l'API OS Config.

Activer l'API Progressive Rollout pour les projets

Console

  1. Dans la console Google Cloud, sélectionnez le projet Google Cloud pour lequel vous souhaitez activer l'API, puis accédez à la page API et services:

    Accéder à API et services

  2. Cliquez sur Activer les API et les services.

  3. Recherchez "Déploiement progressif".

  4. Dans les résultats de recherche, cliquez sur API Progressive Rollout.

  5. Si l'API n'est pas déjà activée, cliquez sur Activer.

gcloud

  1. Pour vérifier si l'API Progressive Rollout est activée, exécutez la commande suivante en remplaçant PROJECT_ID par l'ID du projet pour lequel vous souhaitez activer l'API:

     gcloud services list --project=PROJECT_ID
    

    Si progressiverollout.googleapis.com apparaît dans le résultat, l'API est activée.

  2. Si l'API n'est pas activée, exécutez la commande suivante pour l'activer:

     gcloud services enable progressiverollout.googleapis.com
    

    Pour en savoir plus, consultez les sections sur gcloud services

Configurer les agents du service OS Config

L'orchestrateur de règles utilise les agents de service OS Config pour effectuer des actions dans vos projets. Il dépend également de l'API Progressive Rollout, qui dispose de ses propres agents de service. Pour en savoir plus, consultez la page Agents de service.

Vous devez créer les agents de service pour chaque projet, dossier ou organisation dans lesquels vous créez l'orchestrateur de règles.

Pour créer les agents de service, procédez comme suit :

  1. Vérifiez le format de l'adresse e-mail de l'agent de service pour chaque ressource:

    Projet

    • service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com
    • service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
    • service-PROJECT_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com

    Remplacez PROJECT_NUMBER par l'ID numérique du projet dans lequel vous créez les orchestrateurs de règles.

    Dossier

    • service-folder-FOLDER_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com
    • service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
    • service-folder-FOLDER_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com

    Remplacez FOLDER_NUMBER par l'ID numérique du dossier dans lequel vous créez les orchestrateurs de stratégie.

    Organisation

    • service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com
    • service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
    • service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com

    Remplacez ORGANIZATION_NUMBER par l'ID numérique de l'organisation dans laquelle vous créez les orchestrateurs de stratégie.

  2. Pour créer l'agent de service pour une API et une ressource spécifiées, exécutez la commande gcloud beta services identity create:

    Projet

    gcloud beta services identity create --service=osconfig.googleapis.com  --project=PROJECT_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --project=PROJECT_NUMBER
    

    Remplacez PROJECT_NUMBER par l'ID numérique du projet dans lequel vous souhaitez créer l'agent de service.

    Dossier

    gcloud beta services identity create --service=osconfig.googleapis.com  --folder=FOLDER_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --folder=FOLDER_NUMBER
    

    Remplacez FOLDER_NUMBER par l'ID numérique du dossier dans lequel vous souhaitez créer l'agent de service.

    Organisation

    gcloud beta services identity create --service=osconfig.googleapis.com --organization=ORGANIZATION_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --organization=ORGANIZATION_NUMBER
    

    Remplacez ORGANIZATION_NUMBER par l'ID numérique de l'organisation dans laquelle vous souhaitez créer l'agent de service.

Attribuer des rôles IAM aux agents de service

Pour que l'orchestrateur de règles fonctionne correctement, vous devez accorder tous les rôles d'agent de service requis aux comptes de service respectifs, à la ressource parente de l'orchestrateur:

  • Agent de service OS Config (roles/osconfig.serviceAgent) pour le compte @gcp-sa-osconfig.iam.gserviceaccount.com
  • Agent de service de déploiement OS Config (roles/osconfig.rolloutServiceAgent) pour le compte @gcp-sa-osconfig-rollout.iam.gserviceaccount.com
  • Agent de service Progressiverollout (roles/progressiverollout.serviceAgent) pour le compte @gcp-sa-progrollout.iam.gserviceaccount.com

Pour accorder des rôles IAM aux agents de service, utilisez la console Google Cloud ou la commande add-iam-policy-binding. Pour en savoir plus, consultez Attribuer un rôle à l'agent de service.

Rôles requis

  • Pour obtenir les autorisations nécessaires pour accorder l'accès aux agents de service, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur le projet, le dossier ou l'organisation auxquels vous accordez l'accès dans les objectifs suivants :

    • Autoriser les agents de service à accéder à un projet : Administrateur de projet IAM (roles/resourcemanager.projectIamAdmin)
    • Autoriser les agents de service à accéder à un dossier : Administrateur de dossier (roles/resourcemanager.folderAdmin)
    • Autoriser les agents de service à accéder aux projets, aux dossiers et aux organisations : Administrateur d'organisation (roles/resourcemanager.organizationAdmin)

    Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

    Ces rôles prédéfinis contiennent les autorisations requises pour accorder l'accès aux agents de service. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

    Autorisations requises

    Vous devez disposer des autorisations suivantes pour accorder l'accès aux agents de service :

    • Autoriser les agents de service à accéder à un projet :
      • resourcemanager.projects.getIamPolicy
      • resourcemanager.projects.setIamPolicy
    • Autoriser les agents de service à accéder à un dossier :
      • resourcemanager.folders.getIamPolicy
      • resourcemanager.folders.setIamPolicy
    • Autoriser les agents de service à accéder à une organisation :
      • resourcemanager.organizations.getIamPolicy
      • resourcemanager.organizations.setIamPolicy

    Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour accorder les rôles d'agent de service, exécutez gcloud add-iam-policy-binding comme suit:

Projet

gcloud projects add-iam-policy-binding PROJECT_ID \
 --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud projects add-iam-policy-binding PROJECT_ID \
 --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

Remplacez PROJECT_NUMBER par l'ID numérique du projet auquel la liaison de stratégie IAM est ajoutée.

Dossier

gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
 --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
 --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
--member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

Remplacez FOLDER_NUMBER par l'ID numérique du dossier auquel la liaison de stratégie IAM est ajoutée.

Organisation

gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
 --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
 --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
--member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

Remplacez ORGANIZATION_NUMBER par l'ID numérique de l'organisation à laquelle la liaison de stratégie IAM est ajoutée.

Étape suivante