Analyser le déplacement d'un projet

Ce guide explique comment utiliser l'API Cloud Asset Inventory Analyze Move pour obtenir un rapport détaillé sur les avertissements et les blocages à partir d'une liste de systèmes de règles critiques avant de déplacer votre projet.

Activer les API

Sélectionnez ou créez un projet en tant que projet client de l'API. puis activez l'API Cloud Asset

Ce projet client peut être différent du projet que vous prévoyez d'analyser et de migrer. Le projet client permettra de générer des identifiants pour effectuer une requête API.

La section suivante décrit les rôles et les autorisations nécessaires qui doivent être accordés au projet source que vous prévoyez d'analyser.

Attribuer des autorisations

Pour effectuer une analyse de déplacement de projet, vous devez disposer d'un rôle qui accorde l'autorisation cloudasset.assets.analyzeMove, par exemple Lecteur d'éléments Cloud ou Lecteur.

Pour recevoir des analyses sur un service, vous avez également besoin de rôles liés à ces services. Ces autorisations incluent les suivantes :

  • Si vous souhaitez afficher les stratégies IAM héritées de la ressource d'organisation parente du projet source, vous devez disposer de l'autorisation resourcemanager.organizations.getIamPolicy sur la ressource d'organisation parente du projet source.

  • Si vous souhaitez afficher les stratégies IAM héritées du dossier parent du projet source, vous devez disposer de l'autorisation resourcemanager.folders.getIamPolicy sur le dossier parent du projet source.

  • Si vous souhaitez afficher les stratégies IAM du projet, vous devez disposer de l'autorisation resourcemanager.projects.getIamPolicy sur le projet source.

  • Si vous souhaitez afficher les règles d'administration héritées de ce projet, vous devez disposer de l'autorisation orgpolicy.policy.get sur le projet source.

  • Si vous souhaitez afficher les stratégies de pare-feu Compute Engine héritées sur ce projet, vous devez disposer de l'autorisation compute.organizations.setSecurityPolicy sur le dossier source ou la ressource d'organisation.

  • Si vous souhaitez afficher les tags hérités sur ce projet, vous devez disposer de l'autorisation resourcemanager.hierarchyNodes.listEffectiveTags sur le projet source ou ses nœuds ancêtres.

Effectuer l'analyse

Vous pouvez utiliser Google Cloud CLI ou l'API pour analyser la migration d'une ressource depuis son emplacement actuel dans la hiérarchie des ressources.

gcloud

Pour analyser les conséquences de la migration d'un projet depuis sa position actuelle dans la hiérarchie des ressources, utilisez la commande gcloud asset analyze-move:

gcloud asset analyze-move --project=PROJECT_ID \
  (--destination-folder=FOLDER_ID \
    | --destination-organization=ORGANIZATION_ID)

Pour analyser les conséquences du déplacement d'un projet vers un autre dossier, exécutez la commande avec --destination-folder:

gcloud asset analyze-move --project=PROJECT_ID \
  --destination-folder=FOLDER_ID

Pour analyser les conséquences du déplacement d'un projet vers une autre organisation, exécutez la commande avec --destination-organization:

gcloud asset analyze-move --project=PROJECT_ID \
  --destination-organization=ORGANIZATION_ID

Où :

  • PROJECT_ID est l'ID unique du projet que vous migrez. Par exemple, --myProject123.

  • FOLDER_ID est l'ID numérique du dossier de destination sur lequel effectuer l'analyse. Par exemple, 45678901123.

  • ORGANIZATION_ID est l'ID numérique de l'organisation de destination pour l'analyse. Par exemple, 78901123456.

API

Pour analyser les conséquences de la migration d'un projet depuis sa position actuelle dans la hiérarchie des ressources sans effectuer le déplacement, utilisez la méthode cloudasset.analyzeMove:

GET https://cloudasset.googleapis.com/v1/{resource=*/*}: \
  analyzeMove?destinationParent=DESTINATION_NAME

Où :

  • resource est le nom de la ressource sur laquelle effectuer l'analyse. Seules les ressources de projet sont acceptées. Il doit s'agir de l'ID ou du numéro du projet. Par exemple, projects/my-project-id ou projects/12345.

  • DESTINATION_NAME est le nom de la ressource d'organisation ou de dossier Google Cloud dans laquelle modifier la ressource cible. L'analyse porte sur les impacts du déplacement de la ressource vers le parent de destination spécifié. La destination doit être un numéro de dossier ou de ressource d'organisation. Par exemple, folders/123 ou organizations/123.

Déplacer les réponses d'analyse

La réponse que vous recevez de l'API Move Analysis est regroupée par nom de service. Sous chaque service se trouve une liste des avertissements et des blocages applicables à cette migration de projet. Tous les blocages renvoyés par cette analyse signifient que la migration du projet est bloquée au moment de l'exécution si vous poursuivez la procédure de migration avant de les résoudre.

Résolution des erreurs

Si l'API Move Analysis renvoie une erreur, elle inclut un code standard.Code gRPC ainsi qu'un message décrivant la raison pour laquelle l'API Move Analysis n'a pas pu analyser le projet.

Le tableau suivant décrit les codes d'erreur susceptibles d'être renvoyés par l'API Move Analysis :

Nom de l'erreur Code d'erreur Description
Argument incorrect 3 Renvoyé si vous appelez l'API sur un projet avec un argument non valide, par exemple un nom de ressource incorrect.
Autorisation refusée 7 Renvoyé si vous ne disposez pas des autorisations nécessaires pour effectuer l'analyse ou si le projet source n'existe pas.
Interne 13 Renvoyé en cas de problème avec un appel à un système de stratégie, tel que Identity and Access Management ou une règle d'administration. Cela n'indique pas que la migration n'est pas possible, et vous pouvez relancer l'analyse après avoir vérifié la disponibilité du service.
Indisponible 14 Renvoyé si un système interne n'est pas synchronisé. Cela n'indique pas que la migration n'est pas possible, et vous pouvez relancer l'analyse.
Non authentifié 16 Renvoyé si vous n'avez pas fourni les identifiants corrects pour effectuer cette analyse.

Exemple de message d'erreur

L'exemple suivant illustre le code d'erreur renvoyé pour un utilisateur qui ne dispose pas de l'autorisation cloudasset.assets.analyzeMove sur le projet à migrer :

{
  "error": {
  "code": 403,
  "message": "Failed to fetch Project: projects/test-project-service-3 to perform
              move analysis.",
  "status": "PERMISSION_DENIED"}
}

Certains systèmes de règles peuvent échouer à analyser le déplacement des ressources. L'exemple suivant illustre l'erreur renvoyée par le service de pare-feu hiérarchique lorsque l'utilisateur ne dispose pas de l'autorisation compute.organizations.setSecurityPolicy sur le projet à migrer :

{
  "moveAnalysis": [{
    "displayName": "name hidden",
    "analysis": {
      "warnings": [{
        "detail": "details hidden"
      }]
    }
  }, {
    "displayName": "name hidden",
    "analysis": {
      "warnings": [{
        "detail": "details hidden"
      }]
    }
  }, {
    "displayName": "Hierarchical Firewall",
    "error": {
      "code": 7,
      "message": "Failed to retrieve inherited security policies to perform
                  analysis. Required 'compute.organizations.setSecurityPolicy'
                  permission for {resource ID}"
     }}]
}

Étapes suivantes

L'API Move Analysis fournit des détails qui permettent d'atténuer les blocages et d'autres problèmes lors du déplacement d'un projet d'une ressource d'organisation à une autre. Pour en savoir plus sur la migration de projets entre des ressources Organisation, consultez la page Migrer des projets.