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 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 l'outil de ligne de commande gcloud ou l'API pour analyser la migration d'une ressource à partir de son emplacement actuel dans la hiérarchie des ressources.

gcloud

Pour analyser les implications d'un projet en termes de migration, utilisez la commande gcloud asset analyze-move :

gcloud asset analyze-move --project=PROJECT_ID \
  --DESTINATION_ID

Où :

  • PROJECT_ID est l'ID unique du projet que vous migrez. Exemple :projects/12345678901

  • DESTINATION_ID est le type de ressource et l'identifiant de l'organisation ou du dossier de destination vers lequel vous migrez le projet. Par exemple, --destination-folder=45678901123 ou --destination-organization=78901123456.

API

Pour analyser les implications d'un projet en termes de migration, utilisez la méthode cloudasset.analyzeMove :

GET https://cloudasset.googleapis.com/v1/resource=projects/ \
  PROJECT_NAME:analyzeMove?destinationParent=DESTINATION_ID

Où :

  • PROJECT_NAME est le nom du projet que vous souhaitez migrer. Exemple :foo-project

  • DESTINATION_ID est l'identifiant de l'organisation ou du dossier de destination vers lequel vous migrez le projet. Par exemple, folders/45678901123 ou --organizations/78901123456.

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.