Analyser le déplacement d'un projet

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

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 l'organisation parente du projet source, vous devez disposer de l'autorisation resourcemanager.organizations.getIamPolicy sur 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 de ce projet, vous devez disposer de l'autorisation compute.organizations.setSecurityPolicy sur le dossier ou l'organisation source.

Effectuer l'analyse

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

gcloud

Pour analyser l'impact de la migration d'un projet à partir de 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. Exemple :projects/12345678901

  • FOLDER_ID correspond à l'ID du dossier de destination pour effectuer l'analyse. Exemple :--destination-folder=45678901123

  • ORGANIZATION_ID correspond à l'ID de l'organisation de destination pour effectuer l'analyse. Exemple : --destination-organization=78901123456.

API

Pour analyser l'impact de la migration d'un projet à partir de 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 correspond au nom de la ressource sur laquelle effectuer l'analyse. Seules les ressources du projet sont compatibles. Il doit donc 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 ou de l'organisation Google Cloud pour reparent 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 un numéro 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}"
     }}]
}

Étape suivante

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