Créer et gérer des tags pour les secrets régionaux

Ce guide explique comment créer et gérer des tags sur les secrets régionaux. Vous pouvez utiliser des tags pour regrouper des secrets Secret Manager apparentés et stocker les métadonnées relatives à ces ressources en fonction de leurs tags.

À propos des tags

Un tag est une paire clé-valeur qui peut être associée à une ressource dansGoogle Cloud. Vous pouvez utiliser des tags pour autoriser ou refuser de manière conditionnelle les règles selon qu'une ressource dispose ou non d'un tag spécifique. Par exemple, vous pouvez attribuer des rôles IAM (Identity and Access Management) de manière conditionnelle selon qu'une ressource est associée à un tag spécifique. Pour en savoir plus, consultez Présentation des tags.

Les tags sont associés à des ressources en créant une ressource de liaison de tag qui associe la valeur à la ressource Google Cloud .

Autorisations requises

Pour obtenir les autorisations nécessaires pour gérer les tags, demandez à votre administrateur de vous accorder les rôles IAM suivants :

  • Lecteur de tags (roles/resourcemanager.tagViewer) sur les ressources auxquelles les tags sont associés
  • Afficher et gérer les tags au niveau de l'organisation : Lecteur de l'organisation (roles/resourcemanager.organizationViewer) sur l'organisation
  • Créer, mettre à jour et supprimer des définitions de tags : Administrateur de tags (roles/resourcemanager.tagAdmin) sur la ressource pour laquelle vous créez, mettez à jour ou supprimez des tags
  • Associer et dissocier des tags à des ressources : Utilisateur de tags (roles/resourcemanager.tagUser) sur la valeur de tag et les ressources auxquelles vous associez ou dissociez la valeur de tag

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

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

Pour associer des tags à des secrets Secret Manager, vous devez disposer du rôle Administrateur Secret Manager (roles/secretmanager.admin).

Créer des clés et des valeurs de tags

Avant de pouvoir associer un tag, vous devez d'abord créer un tag et configurer sa valeur. Pour en savoir plus, consultez Créer un tag et Ajouter une valeur de tag.

Ajouter des tags lors de la création d'une ressource

Vous pouvez ajouter des tags lorsque vous créez des secrets régionaux. Cela vous permet de fournir des métadonnées essentielles pour vos ressources, et de mieux les organiser, de suivre les coûts et d'appliquer des règles de manière automatisée.

Console

  1. Accédez à la page Secret Manager dans la console Google Cloud .
  2. Accéder à Secret Manager

  3. Sur la page Secret Manager, cliquez sur l'onglet Secrets régionaux.
  4. Sélectionnez l'option permettant de créer un secret régional.
  5. Cliquez sur Gérer les tags.
  6. Si votre organisation n'apparaît pas dans le panneau Gérer les tags, cliquez sur Sélectionner un niveau d'accès pour les tags, puis sélectionnez votre organisation ou votre projet.
  7. Cliquez sur Ajouter un tag.
  8. Sélectionnez la clé et la valeur du tag dans la liste. Vous pouvez filtrer la liste à l'aide de mots clés.
  9. Cliquez sur Enregistrer. La section Tags est mise à jour avec les informations sur les tags.
  10. Créez votre secret régional. Le nouveau secret régional est créé avec les tags fournis.

gcloud

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • SECRET_ID : identifiant unique du secret.
  • LOCATION : emplacement du secret.
  • TAG_KEY : ID permanent ou nom d'espace de noms de la clé de tag associée. Par exemple, tagKeys/567890123456.
  • TAG_VALUE : ID permanent ou nom d'espace de noms de la valeur de tag associée. Par exemple, tagValues/567890123456.

Spécifiez plusieurs tags en les séparant par une virgule, par exemple, TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud secrets create SECRET_ID --location=LOCATION --tags=TAG_KEY=TAG_VALUE

Windows (PowerShell)

gcloud secrets create SECRET_ID --location=LOCATION --tags=TAG_KEY=TAG_VALUE

Windows (cmd.exe)

gcloud secrets create SECRET_ID --location=LOCATION --tags=TAG_KEY=TAG_VALUE

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • LOCATION : emplacement du secret
  • PROJECT_ID : ID du projet
  • SECRET_ID : identifiant unique du secret.
  • TAGKEY_NAME : ID permanent ou nom d'espace de noms de la clé de tag associée. Par exemple, tagKeys/567890123456.
  • TAGVALUE_NAME : ID permanent ou nom d'espace de noms de la valeur de tag associée. Par exemple, tagValues/567890123456.

Méthode HTTP et URL :

POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID

Corps JSON de la requête :

{
  "tags": {
    "TAGKEY_NAME": "TAGVALUE_NAME"
  }
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand Content

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

C#

Pour exécuter ce code, commencez par configurer un environnement de développement C# et installez le SDK Secret Manager pour C#. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.


using Google.Api.Gax.ResourceNames;
using Google.Cloud.SecretManager.V1;
using System.Collections.Generic;

public class CreateRegionalSecretWithTagsSample
{
    public Secret CreateRegionalSecretWithTags(
      string projectId = "my-project",
      string locationId = "my-location",
      string secretId = "my-secret",
      string tagKeyName = "tagKey/value",
      string tagValueName = "tagValue/value"
    )
    {
        // Create the Regional Secret Manager Client.
        SecretManagerServiceClient client = new SecretManagerServiceClientBuilder
        {
            Endpoint = $"secretmanager.{locationId}.rep.googleapis.com"
        }.Build();

        // Build the parent resource name.
        LocationName location = new LocationName(projectId, locationId);

        // Build the secret.
        Secret secret = new Secret
        {
            Tags =
            {
                { tagKeyName, tagValueName }
            },
        };

        // Call the API.
        Secret createdSecret = client.CreateSecret(location, secretId, secret);
        return createdSecret;
    }
}

Go

Pour exécuter ce code, commencez par configurer un environnement de développement Go et installez le SDK Secret Manager pour Go. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.

import (
	"context"
	"fmt"
	"io"

	secretmanager "cloud.google.com/go/secretmanager/apiv1"
	"cloud.google.com/go/secretmanager/apiv1/secretmanagerpb"
	"google.golang.org/api/option"
)

// createSecretWithTags creates a new regional secret with the given name and tags.
func createRegionalSecretWithTags(w io.Writer, projectId, locationId, secretId, tagKey, tagValue string) error {
	parent := fmt.Sprintf("projects/%s/locations/%s", projectId, locationId)

	// Create the client.
	ctx := context.Background()
	//Endpoint to send the request to regional server
	endpoint := fmt.Sprintf("secretmanager.%s.rep.googleapis.com:443", locationId)
	client, err := secretmanager.NewClient(ctx, option.WithEndpoint(endpoint))
	if err != nil {
		return fmt.Errorf("failed to create secretmanager client: %w", err)
	}
	defer client.Close()

	// Build the request.
	req := &secretmanagerpb.CreateSecretRequest{
		Parent:   parent,
		SecretId: secretId,
		Secret: &secretmanagerpb.Secret{
			Tags: map[string]string{
				tagKey: tagValue,
			},
		},
	}

	// Call the API.
	result, err := client.CreateSecret(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to create secret: %w", err)
	}
	fmt.Fprintf(w, "Created secret with tags: %s\n", result.Name)
	return nil
}

Java

Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Secret Manager pour Java. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.

import com.google.cloud.secretmanager.v1.LocationName;
import com.google.cloud.secretmanager.v1.Secret;
import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;
import com.google.cloud.secretmanager.v1.SecretManagerServiceSettings;
import java.io.IOException;

public class CreateRegionalSecretWithTags {

  public static void createRegionalSecretWithTags() throws IOException {
    // TODO(developer): Replace these variables before running the sample.

    // This is the id of the GCP project
    String projectId = "your-project-id";
    // Location of the secret.
    String locationId = "your-location-id";
    // This is the id of the secret to act on
    String secretId = "your-secret-id";
    // This is the key of the tag to be added
    String tagKey = "your-tag-key";
    // This is the value of the tag to be added
    String tagValue = "your-tag-value";
    createRegionalSecretWithTags(projectId, locationId, secretId, tagKey, tagValue);
  }

  // Create a secret with tags.
  public static Secret createRegionalSecretWithTags(
       String projectId,
       String locationId,
       String secretId,
       String tagKey,
       String tagValue)
      throws IOException {

    // Endpoint to call the regional secret manager sever
    String apiEndpoint = String.format("secretmanager.%s.rep.googleapis.com:443", locationId);
    SecretManagerServiceSettings secretManagerServiceSettings =
        SecretManagerServiceSettings.newBuilder().setEndpoint(apiEndpoint).build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecretManagerServiceClient client = 
        SecretManagerServiceClient.create(secretManagerServiceSettings)) {

      // Build the parent name from the project.
      LocationName location = LocationName.of(projectId, locationId);

      // Build the secret to create with tags.
      Secret secret =
          Secret.newBuilder()
            .putTags(tagKey, tagValue)
            .build();

      // Create the secret.
      Secret createdSecret = client.createSecret(location.toString(), secretId, secret);
      System.out.printf("Created secret with Tags%s\n", createdSecret.getName());
      return createdSecret;
    }
  }
}

Node.js

Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Secret Manager pour Node.js. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'my-project';
// const locationId = 'my-location';
// const secretId = 'my-secret';
// const tagKey = 'tagKeys/281475012216835';
// const tagValue = 'tagValues/281476592621530';
const parent = `projects/${projectId}/locations/${locationId}`;

// Imports the library
const {SecretManagerServiceClient} = require('@google-cloud/secret-manager');

// Adding the endpoint to call the regional secret manager sever
const options = {};
options.apiEndpoint = `secretmanager.${locationId}.rep.googleapis.com`;

// Instantiates a client
const client = new SecretManagerServiceClient(options);

async function createRegionalSecretWithTags() {
  const [secret] = await client.createSecret({
    parent: parent,
    secretId: secretId,
    secret: {
      tags: {
        [tagKey]: tagValue,
      },
    },
  });

  console.log(`Created secret ${secret.name}`);
}

createRegionalSecretWithTags();

PHP

Pour exécuter ce code, commencez par apprendre à utiliser PHP sur Google Cloud et à installer le SDK Secret Manager pour PHP. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.

// Import the Secret Manager client library.
use Google\Cloud\SecretManager\V1\CreateSecretRequest;
use Google\Cloud\SecretManager\V1\Secret;
use Google\Cloud\SecretManager\V1\Client\SecretManagerServiceClient;

/**
 * @param string $projectId  Your Google Cloud Project ID (e.g. 'my-project')
 * @param string $locationId Your Google Cloud Location ID (e.g. 'us-central1')
 * @param string $secretId   Your secret ID (e.g. 'my-secret')
 * @param string $tagKey     Your tag key (e.g. 'tagKeys/281475012216835')
 * @param string $tagValue   Your tag value (e.g. 'tagValues/281476592621530')
 */
function create_regional_secret_with_tags(string $projectId, string $locationId, string $secretId, string $tagKey, string $tagValue): void
{
    // Specify regional endpoint.
    $options = ['apiEndpoint' => "secretmanager.$locationId.rep.googleapis.com"];

    // Create the Secret Manager client.
    $client = new SecretManagerServiceClient($options);

    // Build the resource name of the parent project.
    $parent = $client->locationName($projectId, $locationId);

    $secret = new Secret();

    // set the tags.
    $tags = [$tagKey => $tagValue];
    $secret ->setTags($tags);

    // Build the request.
    $request = CreateSecretRequest::build($parent, $secretId, $secret);

    // Create the secret.
    $newSecret = $client->createSecret($request);

    // Print the new secret name.
    printf('Created secret %s with tag', $newSecret->getName());
}

Python

Pour exécuter ce code, commencez par configurer un environnement de développement Python et installez le SDK Secret Manager pour Python. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.

import argparse

# Import the Secret Manager client library.
from google.cloud import secretmanager_v1


def create_regional_secret_with_tags(
    project_id: str,
    location_id: str,
    secret_id: str,
    tag_key: str,
    tag_value: str,
) -> secretmanager_v1.Secret:
    """
    Create a new regional secret with the given name and associated tags. A
    secret is a logical wrapper around a collection of secret versions. Secret
    versions hold the actual secret material.
    """

    # Endpoint to call the regional Secret Manager API.
    api_endpoint = f"secretmanager.{location_id}.rep.googleapis.com"

    # Create the Secret Manager client.
    client = secretmanager_v1.SecretManagerServiceClient(
        client_options={"api_endpoint": api_endpoint},
    )

    # Build the resource name of the parent secret.
    parent = f"projects/{project_id}/locations/{location_id}"

    # Create the secret.
    response = client.create_secret(
        request={
            "parent": parent,
            "secret_id": secret_id,
            "secret": {
                "tags": {
                    tag_key: tag_value
                }
            },
        }
    )

    # Print the new secret name.
    print(f"Created secret: {response.name}")

    return response

Ruby

Pour exécuter ce code, commencez par configurer un environnement de développement Ruby et installez le SDK Secret Manager pour Ruby. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.

require "google/cloud/secret_manager"

##
# Create a regional secret with tags
#
# @param project_id [String] Your Google Cloud project (e.g. "my-project")
# @param location_id [String] Your Google Cloud location (e.g. "us-west1")
# @param secret_id [String] Your secret name (e.g. "my-secret")
# @param tag_key [String] Your tag key (e.g. "my-tag-key")
# @param tag_value [String] Your tag value (e.g "my-tag-value")
#
def create_regional_secret_with_tags project_id:, location_id:, secret_id:, tag_key:, tag_value:
  # Endpoint for the regional secret manager service.
  api_endpoint = "secretmanager.#{location_id}.rep.googleapis.com"

  # Create the Secret Manager client.
  client = Google::Cloud::SecretManager.secret_manager_service do |config|
    config.endpoint = api_endpoint
  end

  # Build the resource name of the parent project.
  parent = client.location_path project: project_id, location: location_id

  # Create the secret.
  secret = client.create_secret(
    parent:    parent,
    secret_id: secret_id,
    secret: {
      tags: {
        tag_key.name => tag_value.name
      }
    }
  )

  # Print the new secret name.
  puts "Created regional secret with tags: #{secret.name}"
end

Ajouter des tags à des ressources existantes

Pour ajouter un tag à des secrets régionaux existants, procédez comme suit :

Console

  1. Accédez à la page Secret Manager dans la console Google Cloud .
  2. Accéder à Secret Manager

  3. Sélectionnez le secret régional auquel vous souhaitez associer un tag.
  4. Cliquez sur Tags.
  5. Si votre organisation n'apparaît pas dans le panneau Tags, cliquez sur Sélectionner un niveau d'accès. Sélectionnez votre organisation, puis cliquez sur Ouvrir.
  6. Cliquez sur Ajouter un tag.
  7. Sélectionnez la clé et la valeur du tag dans la liste. Vous pouvez filtrer la liste à l'aide de mots clés.
  8. Cliquez sur Enregistrer.
  9. Dans la boîte de dialogue Confirmer, cliquez sur Confirmer pour associer le tag.
  10. Une notification confirme que vos tags ont été mis à jour.

gcloud

Pour associer un tag à un secret régional, vous devez créer une ressource de liaison de tag à l'aide de la commande gcloud resource-manager tags bindings create :

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • TAGVALUE_NAME : ID permanent ou nom d'espace de noms de la valeur de tag associée. Par exemple, tagValues/567890123456.
  • RESOURCE_ID est l'ID complet de la ressource, avec le nom de domaine de l'API permettant de déterminer le type de ressource (//secretmanager.googleapis.com/). Par exemple, pour associer un tag à projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID, l'ID complet est //secretmanager.googleapis.com/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID.
  • LOCATION : emplacement de votre ressource. Si vous associez un tag à une ressource globale, par exemple un dossier ou un projet, omettez ce flag. Si vous associez un tag à une ressource régionale ou zonale, vous devez spécifier l'emplacement, par exemple us-central1 (région) ou us-central1-a (zone).

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud resource-manager tags bindings create \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Windows (PowerShell)

gcloud resource-manager tags bindings create `
    --tag-value=TAGVALUE_NAME `
    --parent=RESOURCE_ID `
    --location=LOCATION

Windows (cmd.exe)

gcloud resource-manager tags bindings create ^
    --tag-value=TAGVALUE_NAME ^
    --parent=RESOURCE_ID ^
    --location=LOCATION

Node.js

Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Secret Manager pour Node.js. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'my-project';
// const locationId = 'my-location';
// const secretId = 'my-secret';
// const tagValue = 'tagValues/281476592621530';
const parent = `projects/${projectId}/locations/${locationId}`;

// Imports the library
const {SecretManagerServiceClient} = require('@google-cloud/secret-manager');
const {TagBindingsClient} = require('@google-cloud/resource-manager').v3;

// Adding the endpoint to call the regional
const options = {};
const bindingOptions = {};
options.apiEndpoint = `secretmanager.${locationId}.rep.googleapis.com`;
bindingOptions.apiEndpoint = `${locationId}-cloudresourcemanager.googleapis.com`;

// Instantiates a client
const client = new SecretManagerServiceClient(options);
const resourcemanagerClient = new TagBindingsClient(bindingOptions);

async function bindTagsToRegionalSecret() {
  const [secret] = await client.createSecret({
    parent: parent,
    secretId: secretId,
  });

  console.log(`Created secret ${secret.name}`);

  const [operation] = await resourcemanagerClient.createTagBinding({
    tagBinding: {
      parent: `//secretmanager.googleapis.com/${secret.name}`,
      tagValue: tagValue,
    },
  });
  const [response] = await operation.promise();
  console.log('Created Tag Binding', response.name);
}

bindTagsToRegionalSecret();

PHP

Pour exécuter ce code, commencez par apprendre à utiliser PHP sur Google Cloud et à installer le SDK Secret Manager pour PHP. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.

// Import the Secret Manager client library.
use Google\Cloud\SecretManager\V1\CreateSecretRequest;
use Google\Cloud\SecretManager\V1\Secret;
use Google\Cloud\SecretManager\V1\Client\SecretManagerServiceClient;
use Google\Cloud\ResourceManager\V3\Client\TagBindingsClient;
use Google\Cloud\ResourceManager\V3\CreateTagBindingRequest;
use Google\Cloud\ResourceManager\V3\TagBinding;

/**
 * @param string $projectId  Your Google Cloud Project ID (e.g. 'my-project')
 * @param string $locationId Your Google Cloud Location ID (e.g. 'us-central1')
 * @param string $secretId   Your secret ID (e.g. 'my-secret')
 * @param string $tagValue   Your tag value (e.g. 'tagValues/281476592621530')
 */
function bind_tags_to_regional_secret(string $projectId, string $locationId, string $secretId, string $tagValue): void
{
    // Specify regional endpoint.
    $options = ['apiEndpoint' => "secretmanager.$locationId.rep.googleapis.com"];

    // Create the Secret Manager client.
    $client = new SecretManagerServiceClient($options);

    // Build the resource name of the parent project.
    $parent = $client->locationName($projectId, $locationId);

    $secret = new Secret();

    // Build the request.
    $request = CreateSecretRequest::build($parent, $secretId, $secret);

    // Create the secret.
    $newSecret = $client->createSecret($request);

    // Print the new secret name.
    printf('Created secret %s' . PHP_EOL, $newSecret->getName());

    // Specify regional endpoint.
    $tagBindOptions = ['apiEndpoint' => "$locationId-cloudresourcemanager.googleapis.com"];
    $tagBindingsClient = new TagBindingsClient($tagBindOptions);
    $tagBinding = (new TagBinding())
        ->setParent('//secretmanager.googleapis.com/' . $newSecret->getName())
        ->setTagValue($tagValue);

    // Build the request.
    $request = (new CreateTagBindingRequest())
        ->setTagBinding($tagBinding);

    // Create the tag binding.
    $operationResponse = $tagBindingsClient->createTagBinding($request);
    $operationResponse->pollUntilComplete();

    // Check if the operation succeeded.
    if ($operationResponse->operationSucceeded()) {
        printf('Tag binding created for secret %s with tag value %s' . PHP_EOL, $newSecret->getName(), $tagValue);
    } else {
        $error = $operationResponse->getError();
        printf('Error in creating tag binding: %s' . PHP_EOL, $error->getMessage());
    }
}

Python

Pour exécuter ce code, commencez par configurer un environnement de développement Python et installez le SDK Secret Manager pour Python. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.

import argparse

# Import the Secret Manager and Resource Manager client library.
from google.cloud import resourcemanager_v3
from google.cloud import secretmanager


def bind_tags_to_regional_secret(
    project_id: str,
    location_id: str,
    secret_id: str,
    tag_value: str,
) -> resourcemanager_v3.TagBinding:
    """
    Create a new regional secret with the given name, and then bind an existing
    tag to it. A secret is a logical wrapper around a collection of secret
    versions. Secret versions hold the actual secret material.
    """

    # Endpoint to call the regional secret manager sever
    api_endpoint = f"secretmanager.{location_id}.rep.googleapis.com"

    # Create the Secret Manager client.
    client = secretmanager.SecretManagerServiceClient(
        client_options={"api_endpoint": api_endpoint},
    )

    # Build the resource name of the parent project.
    parent = f"projects/{project_id}/locations/{location_id}"

    # Create the secret.
    secret_response = client.create_secret(
        request={
            "parent": parent,
            "secret_id": secret_id,
        }
    )

    # Print the new secret name.
    print(f"Created secret: {secret_response.name}")

    # Endpoint to call the regional secret manager sever
    resource_manager_api_endpoint = f"{location_id}-cloudresourcemanager.googleapis.com"

    # Create the resource manager client
    resource_manager_client = resourcemanager_v3.TagBindingsClient(
        client_options={"api_endpoint": resource_manager_api_endpoint},
    )

    # Create the tag binding
    request = resourcemanager_v3.CreateTagBindingRequest(
        tag_binding=resourcemanager_v3.TagBinding(
            parent=f"//secretmanager.googleapis.com/{secret_response.name}",
            tag_value=f"{tag_value}",
        ),
    )

    # Create the tag binding
    operation = resource_manager_client.create_tag_binding(request=request)

    # Wait for the operation to complete
    response = operation.result()

    # Print the tag binding
    print(f"Created tag binding: {response.name}")

    return response

Répertorier les tags associés aux ressources

Vous pouvez afficher une liste de liaisons de tags directement associées au secret régional ou dont celui-ci a hérité.

Console

  1. Accédez à la page Secret Manager dans la console Google Cloud .
  2. Accéder à Secret Manager

  3. Les tags sont affichés dans la colonne Tags du secret.

gcloud

Pour obtenir la liste des liaisons de tags associées à une ressource, exécutez la commande gcloud resource-manager tags bindings list :

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • RESOURCE_ID est l'ID complet de la ressource, avec le nom de domaine de l'API permettant de déterminer le type de ressource (//secretmanager.googleapis.com/). Par exemple, pour associer un tag à projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID, l'ID complet est //secretmanager.googleapis.com/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID.
  • LOCATION : emplacement de votre ressource. Si vous affichez un tag associé à une ressource globale, telle qu'un dossier ou un projet, omettez ce flag. Si vous affichez un tag associé à une ressource régionale ou zonale, vous devez spécifier l'emplacement, par exemple us-central1 (région) ou us-central1-a (zone).

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

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

Windows (PowerShell)

gcloud resource-manager tags bindings list `
    --parent=RESOURCE_ID `
    --location=LOCATION

Windows (cmd.exe)

gcloud resource-manager tags bindings list ^
    --parent=RESOURCE_ID ^
    --location=LOCATION

Vous devriez obtenir un résultat semblable à celui-ci :

  name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
    tagValue: tagValues/567890123456
    resource: //secretmanager.googleapis.com/projects/project-abc/secrets/secret-xyz

Dissocier les tags des ressources

Vous pouvez dissocier les tags qui ont été directement associés à un secret régional. Les tags hérités peuvent être remplacés en associant un tag ayant la même clé et une valeur différente, mais ils ne peuvent pas être dissociés.

Console

  1. Accédez à la page Secret Manager dans la console Google Cloud .
  2. Accéder à Secret Manager

  3. Sélectionnez le secret régional dont vous souhaitez supprimer un tag.
  4. Cliquez sur Tags.
  5. Dans le panneau Tags, à côté du tag que vous souhaitez dissocier, cliquez sur Supprimer l'élément.
  6. Cliquez sur Enregistrer.
  7. Dans la boîte de dialogue Confirmer, cliquez sur Confirmer pour dissocier le tag.

Une notification confirme que vos tags ont été mis à jour.

gcloud

Pour supprimer une liaison de tag, exécutez la commande gcloud resource-manager tags bindings delete :

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • TAGVALUE_NAME : ID permanent ou nom d'espace de noms de la valeur de tag associée. Par exemple, tagValues/567890123456.
  • RESOURCE_ID est l'ID complet de la ressource, avec le nom de domaine de l'API permettant de déterminer le type de ressource (//secretmanager.googleapis.com/). Par exemple, pour associer un tag à projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID, l'ID complet est //secretmanager.googleapis.com/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID.
  • LOCATION : emplacement de votre ressource. Si vous associez un tag à une ressource globale, par exemple un dossier ou un projet, omettez ce flag. Si vous associez un tag à une ressource régionale ou zonale, vous devez spécifier l'emplacement, par exemple us-central1 (région) ou us-central1-a (zone).

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud resource-manager tags bindings delete \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Windows (PowerShell)

gcloud resource-manager tags bindings delete `
    --tag-value=TAGVALUE_NAME `
    --parent=RESOURCE_ID `
    --location=LOCATION

Windows (cmd.exe)

gcloud resource-manager tags bindings delete ^
    --tag-value=TAGVALUE_NAME ^
    --parent=RESOURCE_ID ^
    --location=LOCATION

Supprimer des clés et des valeurs de tags

Lorsque vous supprimez une clé ou une définition de valeur de tag, assurez-vous que le tag est dissocié du secret régional. Vous devez supprimer les rattachements de tag existants, appelés liaisons de tags, avant de supprimer la définition de tag elle-même. Pour en savoir plus, consultez Supprimer des tags.

Conditions et tags Identity and Access Management

Vous pouvez utiliser des tags et des conditions IAM pour attribuer des liaisons de rôles de manière conditionnelle aux utilisateurs dans votre hiérarchie. La modification ou la suppression du tag associé à une ressource peut supprimer l'accès des utilisateurs à cette ressource, si une stratégie IAM avec des liaisons de rôle conditionnelles a été appliquée. Pour en savoir plus, consultez la section Conditions et tags Identity and Access Management.

Étapes suivantes