Afficher des stratégies IAM efficaces

Cet article explique comment afficher les stratégies IAM (Identity and Access Management) effectives sur une ressource donnée.

Dans IAM, la stratégie en vigueur décrit comment toutes les stratégies parentes et ascendantes de la hiérarchie des ressources sont héritées pour une ressource.

Champ d'application et autorisations

Lorsque vous demandez des stratégies IAM efficaces, vous devez spécifier un champ d'application. Il peut s'agir d'une organisation, d'un dossier ou d'un projet. Toutes les stratégies IAM définies sur ou sous ce champ sont renvoyées. Le champ d'application de la requête ne doit pas nécessairement être identique au projet activé pour l'API Cloud Asset. De plus, le projet activé et le champ d'application de requête nécessitent des autorisations différentes.

Avant de commencer

Avant de commencer, suivez les étapes ci-dessous.

  1. Activez l'API Cloud Asset Inventory pour votre projet.
    Activez l'API Cloud Asset Inventory

    Ce projet ne doit pas nécessairement être identique au champ d'application de vos requêtes. Découvrez comment définir un projet lors de l'activation d'un service.

  2. Installez le SDK Google Cloud.

  3. Pour configurer votre environnement afin d'appeler l'API Cloud Asset Inventory avec la commande Unix curl, procédez comme suit :

    1. Installez oauth2l sur votre ordinateur local, de façon à pouvoir interagir avec le système Google OAuth.
    2. Vérifiez que vous avez accès à la commande Unix curl.
    3. Obtenez un jeton d'accès pour l'authentification.

      TOKEN=$(gcloud auth print-access-token)
      
  4. Définissez les autorisations.

    1. Configurez les autorisations pour l'API Cloud Asset.
    2. Activez les autorisations suivantes pour votre champ d'application des requêtes.

      • cloudasset.assets.analyzeIamPolicy
      • cloudasset.assets.searchAllResources
      • cloudasset.assets.searchAllIamPolicies

      Ces autorisations sont incluses dans les rôles suivants :

      • Propriétaire d'éléments Cloud (roles/cloudasset.owner)
      • Lecteur d'éléments Cloud (roles/cloudasset.viewer)

      Pour en savoir plus sur les autorisations et les rôles de l'API Cloud Asset, consultez la page Contrôle des accès.

Obtenir des stratégies IAM efficaces

Pour obtenir les stratégies IAM effectives sur une ressource à l'aide de l'API Cloud Asset Inventory avec la commande curl, procédez comme suit :

  1. Créez un fichier request.json pour le corps de la requête et définissez son contenu sur la requête au format JSON.

    Le corps de requête suivant récupère les stratégies IAM efficaces pour FULL_RESOURCE_NAME_1 et FULL_RESOURCE_NAME_2.

    {
     "names": [
       "FULL_RESOURCE_NAME_1",
       "FULL_RESOURCE_NAME_2",
     ]
    }
    

    FULL_RESOURCE_NAME nécessite un nom de ressource unique spécifiquement formaté. Pour obtenir la liste des noms complets des types d'éléments compatibles avec l'API Cloud Asset, consultez la page Format du nom des ressources.

    Vous pouvez récupérer des stratégies IAM efficaces pour un maximum de 10 ressources dans un seul lot.

  2. Obtenez des stratégies IAM efficaces à l'aide de la commande curl suivante pour récupérer les stratégies définies sur ou sous SCOPE:

    SERVER_URL="https://cloudasset.googleapis.com";
    
    curl \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: ENABLED_PROJECT" \
    -H "X-HTTP-Method-Override: GET" \
    -d @request.json \
    "${SERVER_URL}/v1/SCOPE/effectiveIamPolicies:batchGet"
    

    Pour SCOPE, les valeurs acceptées sont les suivantes:

    • organizations/ORGANIZATION_NUMBER
    • folders/FOLDER_NUMBER
    • projects/PROJECT_NUMBER
    • projects/PROJECT_ID

    Pour ENABLED_PROJECT, les valeurs acceptées sont les suivantes:

    • PROJECT_NUMBER
    • PROJECT_ID