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
ouprojects/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
ouorganizations/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.