タグでアクセスを制御する

このページでは、タグを使用して Cloud Data Fusion のリソースを管理する方法について説明します。

Cloud Data Fusion インスタンスにタグを適用できます。タグを追加すると、リソースの重要なメタデータが提供され、整理、費用追跡、ポリシーの自動適用に役立ちます。

タグについて

タグは、Google Cloud内のリソースに適用できる Key-Value ペアです。タグを使用すると、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーの許可や拒否を行うことができます。たとえば、リソースに特定のタグがあるかどうかに基づいて、Identity and Access Management(IAM)のロールを条件付きで付与できます。タグの詳細については、タグの概要をご覧ください。

タグは、値を Google Cloud リソースにリンクするタグ バインディング リソースを作成することによって、リソースに適用されます。

始める前に

次のユースケースの権限を取得するには、リソース階層の適切なレベルで推奨されているロールを付与するよう管理者に依頼してください。Cloud Data Fusion の IAM の詳細については、IAM によるアクセス制御をご覧ください。

必要なロールと権限

タグを使用して Cloud Data Fusion のインスタンスを管理するために必要な権限を取得するには、Cloud Data Fusion サービス アカウントと Compute Engine のデフォルト サービス アカウントまたはカスタム サービス アカウントに次の IAM ロールを付与するよう管理者に依頼してください。

  • インスタンスに適用されたタグの定義とタグを表示する: タグ閲覧者 roles/resourcemanager.tagViewer
  • タグの定義を作成、更新、削除する: タグ管理者 roles/resourcemanager.tagAdmin
  • 組織レベルでタグを管理する: 組織閲覧者(roles/resourcemanager.organizationViewer) - 組織のリソースに対して
  • インスタンスに適用されたタグを追加または削除する: タグユーザー(roles/resourcemanager.tagUser) - タグ値とタグ値を適用するリソースの両方に対して
  • Cloud Data Fusion インスタンスにタグを適用する: Cloud Data Fusion 管理者 roles/datafusion.admin

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、タグを使用して Cloud Data Fusion のインスタンスを管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

Cloud Data Fusion でタグを使用してインスタンスを管理するには、次の権限が必要です。

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.get
  • resourcemanager.tagValues.list
  • 該当するリソースタイプに対する listTagBindings。たとえば、Cloud Data Fusion インスタンスに適用されているタグを表示する場合: datafusion.instances.listTagBindings
  • 該当するリソースタイプに対する listEffectiveTags。たとえば、Cloud Data Fusion インスタンスに適用されたすべてのタグを表示するか、そのインスタンスに継承されたすべてのタグを表示する場合: datafusion.instances.listEffectiveTags

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

タグキーとタグ値を作成する

タグを適用する前に、タグを作成してその値を構成する必要があります。タグキーとタグ値を作成するには、タグを作成するタグ値を追加するをご覧ください。

Cloud Data Fusion インスタンスにタグを適用する

Cloud Data Fusion インスタンスには、インスタンスの作成中と作成後の両方でタグを適用できます。

インスタンスの作成時にタグを適用する

タグは、Cloud Data Fusion インスタンスの作成時に付加できます。

gcloud

--tags フラグを指定して gcloud beta data-fusion instances create コマンドを使用します。

gcloud beta data-fusion instances create INSTANCE_ID \
    --tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID

複数のタグを一度に追加できます。

次のように置き換えます。

  • INSTANCE_ID: Cloud Data Fusion インスタンスの名前。
  • TAGKEY_ID: 名前空間のないタグキーの数値 ID(例: 123456789012)。
  • TAGVALUE_ID: タグ値の永続的な数値 ID。例: 4567890123

REST

次の URL に POST リクエストを送信します。

POST https://datafusion.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instanceID=INSTANCE_ID

リクエスト本文で次の JSON を指定します。

{
    "tags": {
        "tagKeys/TAGKEY_ID": "tagValues/TAGVALUE_ID"
    }
    // Other fields omitted
}

次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクトの ID。
  • INSTANCE_ID: Cloud Data Fusion インスタンスの名前。
  • TAGKEY_ID: タグキーの数値 ID。
  • TAGVALUE_ID: タグ値の永続的な数値 ID。例: 4567890123

詳細については、v1v1beta1 の API リファレンスをご覧ください。

複数のタグを一度に追加できます。

インスタンスの作成後にタグを適用する

タグは、インスタンスの作成後に Cloud Data Fusion インスタンスに適用できます。

gcloud

タグをインスタンスに適用するには、create コマンドを使用してタグ バインディング リソースを作成する必要があります。

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

以下を置き換えます。

  • TAGVALUE_NAME: 適用されるタグ値の永続 ID または名前空間名(例: tagValues/567890123456)。
  • RESOURCE_ID: リソースのタイプ(//datafusion.googleapis.com/)を識別する、API ドメイン名を含むリソースの完全な ID。たとえば、us-central1 にある projects/7890123456 のインスタンスにタグを適用するには、次のリソース ID を使用します。 //datafusion.googleapis.com/projects/7890123456/locations/us-central1/instances/instance-ID
  • LOCATION: リソースのロケーション。例: us-central1

通知により、タグが作成されたことを確認します。

このアクションではインスタンスは再起動されません。

インスタンスに適用されているタグを一覧表示する

Cloud Data Fusion インスタンスに直接適用されているか、Cloud Data Fusion インスタンスによって継承されているタグ バインディングのリストを表示できます。

gcloud

インスタンスに適用されたタグ バインディングのリストを取得するには、list コマンドを使用します。

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

次のように置き換えます。

  • RESOURCE_ID: リソースのタイプ(//datafusion.googleapis.com/)を識別する、API ドメイン名を含むリソースの完全な ID。たとえば、us-central1 にある projects/7890123456 のインスタンスのタグを一覧表示するには、リソース ID //datafusion.googleapis.com/projects/7890123456/locations/us-central1/instances/instance-ID を使用します。
  • LOCATION: リソースのロケーション。例: us-central1

レスポンスは次の形式で返されます。

tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
  tagValue: tagValues/567890123456
  resource: //datafusion.googleapis.com/projects/7890123456/locations/us-central1/instances/instance-ID

インスタンスからタグを解除する

Cloud Data Fusion インスタンスに直接適用されたタグを削除できます。継承されたタグは、同じキーと別の値を持つタグを適用することでオーバーライドできますが、削除することはできません。タグを削除する前に、タグが適用されているすべてのインスタンスからキーと値を切り離す必要があります。

gcloud

タグ バインディングを削除するには、delete コマンドを使用します。

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

以下を置き換えます。

  • TAGVALUE_NAME: 適用されるタグ値の永続 ID または名前空間名(例: tagValues/567890123456)。
  • RESOURCE_ID: リソースのタイプ(//datafusion.googleapis.com/)を識別する、API ドメイン名を含むリソースの完全な ID。たとえば、us-central1 にある projects/7890123456 のインスタンスにタグを適用するには、次のリソース ID を使用します。 //datafusion.googleapis.com/projects/7890123456/locations/us-central1/instances/instance-ID
  • LOCATION: リソースのロケーション。例: us-central1

通知により、タグが更新されたことを確認します。

タグキーとタグ値を削除する

タグキーまたは値の定義を削除する場合は、インスタンスからタグの適用が解除されていることを確認してください。タグ定義自体を削除する前に、既存のタグの適用(タグ バインディング)を削除する必要があります。タグキーとタグ値を削除するには、タグの削除をご覧ください。

Identity and Access Management の条件とタグ

タグと IAM Conditions を使用すると、階層内のユーザーに条件付きでロール バインディングを付与できます。条件付きロール バインディングを含む IAM ポリシーが適用されている場合、インスタンスに適用されたタグを変更または削除すると、そのインスタンスへのユーザー アクセスを削除できます。詳細については、Identity and Access Management の条件とタグをご覧ください。

次のステップ