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 de l'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 dans 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 de 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 l'impact 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 l'impact 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 l'impact 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 sur lequel effectuer l'analyse. Par exemple, 78901123456.

API

Pour analyser l'impact 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 du 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 du dossier Google Cloud ou de la ressource Organisation qui permet de changer le parent de la ressource cible. L'analyse sera effectuée sur les conséquences 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 de l'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és 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 permettant de limiter les blocages et 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 d'organisation, consultez Migrer des projets.