Utiliser des tags pour gérer l'accès aux buckets de journaux

Ce document explique comment utiliser des tags pour gérer vos buckets de journaux Cloud Logging. Les tags, qui sont créés au niveau de l'organisation ou du projet, vous permettent d'annoter vos ressources. Vous pouvez également attribuer des rôles IAM (Identity and Access Management) de manière conditionnelle ou refuser des autorisations IAM de manière conditionnelle selon qu'une ressource est associée à un tag spécifique ou non. Pour en savoir plus sur les tags, consultez la page Présentation des tags.

Par exemple, si vous utilisez BigQuery pour analyser vos données Cloud Billing, vous pouvez associer le tag project:production aux buckets de journaux qui stockent les données de journaux des ressources de production, et le tag project:development aux buckets de journaux qui stockent les données de journaux des ressources de développement. Vous pouvez ensuite interroger les données Cloud Billing avec des tags et afficher une répartition de vos coûts entre le développement et la production.

Les tags peuvent être associés explicitement à des buckets de journaux ou hérités de leur organisation, de leurs dossiers et de leurs projets parents.

Avant de commencer

Pour commencer à gérer vos buckets de journaux à l'aide de tags, procédez comme suit :

  1. Assurez-vous d'avoir créé un tag et configuré ses valeurs. Vous devez utiliser Resource Manager pour gérer les définitions de tags. Pour savoir comment créer et gérer des tags, consultez Créer et gérer des tags.
  2. Pour obtenir les autorisations nécessaires pour gérer vos buckets de journaux à l'aide de tags, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet ou l'organisation :

    Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

    Ces rôles prédéfinis contiennent les autorisations requises pour gérer vos buckets de journaux à l'aide de tags. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

    Autorisations requises

    Les autorisations suivantes sont requises pour gérer vos buckets de journaux à l'aide de tags :

    • Ajoutez ou supprimez des tags dans les buckets de journaux :
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • resourcemanager.projects.get
      • logging.buckets.createTagbinding
      • logging.buckets.deleteTagBinding
    • Affichez les tags associés aux buckets de journaux :
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • logging.buckets.listTagBindings
      • logging.buckets.listEffectiveTags

    Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

  3. Pour obtenir l'autorisation nécessaire pour gérer les buckets de journaux, demandez à votre administrateur de vous accorder le rôle IAM Rédacteur de configuration des journaux (roles/logging.configWriter) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

    Ce rôle prédéfini contient l'autorisation logging.buckets.list, qui est nécessaire pour gérer les buckets de journaux.

    Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Associer des tags à un bucket de journaux

Pour associer un tag à un bucket de journaux, procédez comme suit :

Console Google Cloud

  1. Dans la console Google Cloud , accédez à la page Stockage des journaux :

    Accéder à la page Stockage des journaux

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.

  2. Localisez le bucket de journaux auquel associer un tag.

  3. Sur le bucket de journaux, cliquez sur Plus, puis sur Modifier les tags.

  4. Dans la boîte de dialogue, dans la section Tags directs, recherchez le tag en sélectionnant la ressource dans laquelle il a été créé. Par exemple, pour utiliser un tag créé au niveau du projet, sélectionnez Sélectionner le projet actuel comme champ d'application.

    Vous pouvez également rechercher manuellement l'ID du projet, de l'organisation ou du tag en sélectionnant l'option Saisie manuelle.

  5. Sélectionnez la paire clé-valeur appropriée, puis cliquez sur Enregistrer.

  6. Une boîte de dialogue de confirmation s'affiche. Cliquez sur Confirmer pour finaliser vos modifications.

gcloud

Pour associer un tag à un bucket de journaux, créez une liaison de tag en exécutant la commande gcloud resource-manager tags bindings create :

gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

Dans la commande ci-dessus, remplacez les éléments suivants :

  • TAG_VALUE_ID : ID permanent ou nom de l'espace de noms de la valeur de tag. Exemple :tagValues/4567890123 Pour en savoir plus sur les identifiants de tag, consultez Définitions et identifiants de tags.

  • BUCKET_NAME : nom du bucket de journaux. Exemple : //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID.

  • LOCATION : emplacement du bucket de journaux.

API

Pour associer un tag à un bucket de journaux, utilisez la méthode tagBindings.create.

Afficher les tags associés à un bucket de journaux

Pour afficher les tags associés à un bucket de journaux, procédez comme suit :

Console Google Cloud

  1. Dans la console Google Cloud , accédez à la page Stockage des journaux :

    Accéder à la page Stockage des journaux

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.

  2. Recherchez le bucket de journaux dont vous souhaitez afficher les tags.

    Dans la colonne Tags, un tag associé au bucket de journaux est listé. Pour afficher tous les tags associés au bucket de journaux, cliquez sur le bouton Plus pour développer la liste des tags.

gcloud

Exécutez la commande gcloud resource-manager tags bindings list :

gcloud resource-manager tags bindings list \
--parent=BUCKET_NAME \
--location=LOCATION

Dans la commande ci-dessus, remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket de journaux. Exemple : //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID.

  • LOCATION : emplacement du bucket de journaux.

Facultatif : Pour afficher les tags hérités par le bucket de journaux, ajoutez l'option --effective. L'ajout de cette option renvoie une réponse semblable à la suivante :

namespacedTagKey: 961309089256/environment
namespacedTagValue: 961309089256/environment/production
tagKey: tagKeys/417628178507
tagValue: tagValues/247197504380
inherited: true

Si tous les tags sont explicitement associés au bucket de journaux et qu'aucun tag n'est hérité, le champ inherited est défini sur "false" et est omis.

API

Pour obtenir la liste des liaisons de tags d'un bucket, utilisez la méthode tagBindings.list.

Supprimer des tags sur un bucket de journaux

Pour supprimer les tags associés à un bucket de journaux, vous devez supprimer la liaison de tag associée au bucket de journaux. Pour supprimer un tag, vous devez le retirer de toutes les ressources associées.

Console Google Cloud

  1. Dans la console Google Cloud , accédez à la page Stockage des journaux :

    Accéder à la page Stockage des journaux

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.

  2. Localisez le bucket de journaux dont vous souhaitez supprimer le tag.

  3. Sur le bucket de journaux, cliquez sur Plus, puis sur Modifier les tags.

  4. Dans la boîte de dialogue, pointez sur le tag à supprimer, puis cliquez sur Supprimer l'élément. Cliquez sur Enregistrer pour enregistrer les modifications.

  5. Une boîte de dialogue de confirmation s'affiche. Cliquez sur Confirmer pour finaliser vos modifications.

gcloud

Exécutez la commande gcloud resource-manager tags bindings delete :

gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

Dans la commande ci-dessus, remplacez les éléments suivants :

  • TAG_VALUE_ID : ID permanent ou nom de l'espace de noms de la valeur de tag. Exemple :tagValues/4567890123 Pour en savoir plus sur les identifiants de tag, consultez Définitions et identifiants de tags.

  • BUCKET_NAME : nom du bucket de journaux. Exemple : //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID.

  • LOCATION : emplacement du bucket de journaux.

API

Pour supprimer un tag d'un bucket de journaux, utilisez la méthode tagBindings.delete.

Limites

  • Vous ne pouvez pas utiliser les attributions de rôles IAM pour contrôler les buckets de journaux qu'un compte principal voit lorsqu'il liste les buckets de journaux dans un projet Google Cloud . Un responsable verra une liste complète ou une liste vide. Toutefois, vous pouvez utiliser des attributions de rôle IAM avec des conditions IAM pour limiter les actions qu'un compte principal peut effectuer sur un bucket de journaux. Par exemple, vous pouvez limiter la possibilité pour un compte principal de supprimer un bucket de journaux spécifique.

  • Si vous utilisez les exportations de données Cloud Billing avec BigQuery, les tags peuvent mettre jusqu'à une heure à être utilisés dans l'exportation. Si un tag a été ajouté ou supprimé il y a une heure, ou si le bucket de journaux existe depuis moins d'une heure, il est possible qu'il n'apparaisse pas dans l'exportation.

Rôles personnalisés et attributions de rôles avec des conditions IAM

Si vous prévoyez d'utiliser des rôles IAM personnalisés et d'associer des conditions IAM aux attributions de rôles, vous devrez peut-être créer plusieurs rôles personnalisés. Certaines autorisations IAM sont invalidées lorsqu'une condition IAM est associée à une attribution de rôle.

Pour Cloud Logging, les autorisations IAM suivantes sont invalidées lorsqu'une attribution de rôle contient une condition IAM :

  • logging.buckets.list
  • logging.buckets.create

Par conséquent, vous devrez peut-être créer un rôle avec les autorisations list et create, et un autre rôle contenant d'autres autorisations spécifiques aux buckets. Par exemple, vous pouvez créer un rôle qui contient les autorisations logging.buckets.delete et logging.buckets.update.

Lorsque vous attribuez le rôle contenant les autorisations list et create, n'associez pas de condition IAM à l'attribution du rôle. Lorsque vous accordez le rôle contenant les autorisations delete et update, vous pouvez ajouter une condition IAM qui limite l'attribution aux ressources portant un tag spécifique.

Étapes suivantes