조직 주 구성원이 태그를 사용하도록 설정

리소스 프로젝트에서 Data Catalog 태그 템플릿을 만든 후에는 주 구성원에게 Data Catalog tagTemplateUser 역할을 부여할 수 있습니다. 이를 통해 메타데이터를 만들 수 있습니다. 즉, 템플릿을 사용하여 데이터 리소스에 태그를 지정할 수 있습니다. 자세한 내용은 Google Cloud 리소스에 태그 연결을 참조하세요.

다음 섹션에서는 tagTemplateUser 역할을 부여하는 방법을 보여줍니다.

tagTemplateUser 역할 부여

콘솔

콘솔

프로젝트의 주 구성원에 Data Catalog tagTemplateUser 역할을 부여하려면 다음 안내를 따르세요.

  1. Google Cloud Console에서 IAM으로 이동하고 주 구성원 목록 오른쪽에 있는 수정() 버튼을 클릭합니다.

  2. 권한 수정 대화상자에서 다른 역할 추가를 클릭한 다음 역할 선택 드롭다운 목록을 클릭합니다.

  3. 필터 상자에서 Data Catalog TagTemplate User를 삽입하여 이 역할을 표시한 다음 선택하고 저장을 클릭합니다.

자바

이 샘플을 사용해 보기 전에 Data Catalog 빠른 시작: 클라이언트 라이브러리 사용Java 설정 안내를 따르세요. 자세한 내용은 Data Catalog Java API 참고 문서를 참조하세요.

Data Catalog에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

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

이 샘플을 사용해 보기 전에 Data Catalog 빠른 시작: 클라이언트 라이브러리 사용Node.js 설정 안내를 따르세요. 자세한 내용은 Data Catalog Node.js API 참고 문서를 참조하세요.

Data Catalog에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

// 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

이 샘플을 사용해 보기 전에 Data Catalog 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 Data Catalog Python API 참고 문서를 참조하세요.

Data Catalog에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

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}")

REST 및 명령줄

REST

해당 언어의 Cloud 클라이언트 라이브러리에 액세스할 수 없거나 REST 요청을 사용하여 API를 테스트하려는 경우 다음 예시를 참조하고 Data Catalog REST API 문서를 참조하세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: Google Cloud 프로젝트 ID
  • template-id: 태그 템플릿 ID

HTTP 메서드 및 URL:

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

JSON 요청 본문:

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

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

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