Permettere alle entità della tua organizzazione di utilizzare i tag

Dopo aver creato un modello di tag Data Catalog nel progetto di risorsa, puoi concedere il ruolo tagTemplateUser di Data Catalog alle entità. Ciò consente loro di creare metadati, ovvero utilizzare il tuo modello per taggare le risorse di dati. Per ulteriori informazioni, consulta Collegamento di tag alle risorse Google Cloud.

La sezione successiva mostra come concedere il ruolo tagTemplateUser.

Concedi il ruolo tagTemplateUser

Console

Console

Per concedere il ruolo Data Catalog tagTemplateUser a un'entità in un progetto, segui questi passaggi:

  1. Vai a IAM nella console Google Cloud e fai clic sul pulsante Modifica () a destra dell'elenco dell'entità.

  2. Nella finestra di dialogo Modifica autorizzazioni, fai clic su AGGIUNGI UN ALTRO RUOLO e poi sull'elenco a discesa Seleziona un ruolo.

  3. Nella casella Filtro , inserisci Data Catalog TagTemplate User per visualizzare questo ruolo, quindi selezionalo e fai clic su SALVA.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di Data Catalog sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Data Catalog.

Per eseguire l'autenticazione in Data Catalog, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

import com.google.cloud.datacatalog.v1.DataCatalogClient;
import com.google.cloud.datacatalog.v1.TagTemplateName;
import com.google.iam.v1.Binding;
import com.google.iam.v1.Policy;
import com.google.iam.v1.SetIamPolicyRequest;
import java.io.IOException;

// Sample to grant tag access on template
public class GrantTagTemplateUserRole {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "my-project";
    String tagTemplateId = "my_tag_template";
    grantTagTemplateUserRole(projectId, tagTemplateId);
  }

  public static void grantTagTemplateUserRole(String projectId, String templateId)
      throws IOException {
    // Currently, Data Catalog stores metadata in the us-central1 region.
    String location = "us-central1";

    // Format the Template name.
    String templateName =
        TagTemplateName.newBuilder()
            .setProject(projectId)
            .setLocation(location)
            .setTagTemplate(templateId)
            .build()
            .toString();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {

      // Create a Binding to add the Tag Template User role and member to the policy.
      Binding binding =
          Binding.newBuilder()
              .setRole("roles/datacatalog.tagTemplateUser")
              .addMembers("group:example-analyst-group@google.com")
              .build();

      // Create a Policy object to update Template's IAM policy by adding the new binding.
      Policy policyUpdate = Policy.newBuilder().addBindings(binding).build();

      SetIamPolicyRequest request =
          SetIamPolicyRequest.newBuilder()
              .setPolicy(policyUpdate)
              .setResource(templateName)
              .build();

      // Update Template's policy.
      dataCatalogClient.setIamPolicy(request);
      System.out.println("Role successfully granted");
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella guida rapida di Data Catalog sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Data Catalog.

Per eseguire l'autenticazione in Data Catalog, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

// Import the Google Cloud client library.
const {DataCatalogClient} = require('@google-cloud/datacatalog').v1;
const datacatalog = new DataCatalogClient();

async function grantTagTemplateUserRole() {
  // Grant the tagTemplateUser role to a member of the project.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const projectId = 'my_project'; // Google Cloud Platform project
  // const templateId = 'my_existing_template';
  // const memberId = 'my_member_id'

  const location = 'us-central1';

  // Format the Template name.
  const templateName = datacatalog.tagTemplatePath(
    projectId,
    location,
    templateId
  );

  // Retrieve Template's current IAM Policy.
  const [getPolicyResponse] = await datacatalog.getIamPolicy({
    resource: templateName,
  });
  const policy = getPolicyResponse;

  // Add Tag Template User role and member to the policy.
  policy.bindings.push({
    role: 'roles/datacatalog.tagTemplateUser',
    members: [memberId],
  });

  const request = {
    resource: templateName,
    policy: policy,
  };

  // Update Template's policy.
  const [updatePolicyResponse] = await datacatalog.setIamPolicy(request);

  updatePolicyResponse.bindings.forEach(binding => {
    console.log(`Role: ${binding.role}, Members: ${binding.members}`);
  });
}
grantTagTemplateUserRole();

Python

Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nella guida rapida di Data Catalog sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Data Catalog.

Per eseguire l'autenticazione in Data Catalog, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datacatalog_v1
from google.iam.v1 import iam_policy_pb2 as iam_policy
from google.iam.v1 import policy_pb2

datacatalog = datacatalog_v1.DataCatalogClient()

# TODO: Set these values before running the sample.
project_id = "project_id"
tag_template_id = "existing_tag_template_id"
# For a full list of values a member can have, see:
# https://cloud.google.com/iam/docs/reference/rest/v1/Policy?hl=en#binding
member_id = "user:super-cool.test-user@gmail.com"

# For all regions available, see:
# https://cloud.google.com/data-catalog/docs/concepts/regions
location = "us-central1"

# Format the Template name.
template_name = datacatalog_v1.DataCatalogClient.tag_template_path(
    project_id, location, tag_template_id
)

# Retrieve Template's current IAM Policy.
policy = datacatalog.get_iam_policy(resource=template_name)

# Add Tag Template User role and member to the policy.
binding = policy_pb2.Binding()
binding.role = "roles/datacatalog.tagTemplateUser"
binding.members.append(member_id)
policy.bindings.append(binding)

set_policy_request = iam_policy.SetIamPolicyRequest(
    resource=template_name, policy=policy
)

# Update Template's policy.
policy = datacatalog.set_iam_policy(set_policy_request)

for binding in policy.bindings:
    for member in binding.members:
        print(f"Member: {member}, Role: {binding.role}")

LINEA REST e CMD

REST

Se non hai accesso alle librerie client di Cloud per il tuo linguaggio o se vuoi testare l'API utilizzando richieste REST, consulta gli esempi riportati di seguito e fai riferimento alla documentazione sull'API REST Data Catalog.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: ID progetto Google Cloud
  • template-id: l'ID modello di tag

Metodo HTTP e URL:

POST https://datacatalog.googleapis.com/v1/projects/project-id/locations/region/tagTemplates/template-id:setIamPolicy

Corpo JSON della richiesta:

{
  "policy":{
    "bindings":[
      {
        "role":"roles/datacatalog.tagTemplateUser",
        "members":[
          "user:username@gmail.com"
        ]
      }
    ]
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "version":1,
  "etag":"xxxxx.....",
  "bindings":[
    {
      "role":"roles/datacatalog.tagTemplateUser",
      "members":[
        "user:username@gmail.com"
      ]
    }
  ]
}