タグリポジトリ

タグを使用すると、Google Cloud 組織のレポート、監査、アクセス制御のために Google Cloud 全体のリポジトリやその他のリソースをグループ化できます。

自動化と課金のために Artifact Registry 内でリポジトリをグループ化するには、ラベルを使用します。タグとラベルは互いに独立して機能するため、両方を同じリポジトリに適用できます。 タグとラベルの違いについて詳しくは、タグとラベルをご覧ください。

タグとは

タグは Key-Value ペアで、リソースに対してきめ細かいアクセス制御を行うことができます。

プロジェクト管理者は、組織レベルで Google Cloud のリソースにタグを作成し、Resource Manager で管理します。Artifact Registry リポジトリにタグ付けすると、IAM 条件を伴うタグを使用して、リポジトリに条件付きのアクセス権を付与できます。個々のアーティファクトにタグ付けすることはできません。

次の制限事項にご注意ください。

  • 組織のポリシーでは、親プロジェクトまたはその上位から継承されたタグを条件付きで参照できますが、リポジトリに直接適用されたタグは使用できません。

  • リポジトリへのタグの適用とタグ バインディングの表示で Cloud Audit logs は生成されません。

タグとタグを使用した条件付きアクセス制御の詳細については、タグとアクセス制御をご覧ください。

必要な権限

必要な権限は、実行する必要があるアクションによって異なります。

これらの権限を取得するには、リソース階層の適切なレベルで推奨されているロールの付与を管理者に依頼してください。

タグを表示する

タグの定義とリソースに適用されているタグを確認するには、タグ閲覧者のロール(roles/resourcemanager.tagViewer)、または次の権限を含む別のロールが必要です。

必要な権限

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • 該当するリソースタイプに対する listTagBindings。たとえば、Compute Engine インスタンスに適用されているタグを表示する場合は compute.instances.listTagBindings
  • listEffectiveTags
  • (該当するリソースタイプに対する)。たとえば、compute.instances.listEffectiveTags は、Compute Engine インスタンスに付加されたすべてのタグを表示するか、そのインスタンスに継承されたすべてのタグを表示します。

組織レベルでタグを表示するには、組織リソースに対する組織閲覧者のロール(roles/resourcemanager.organizationViewer)が必要です。

タグを管理する

タグの定義を作成、更新、削除するには、タグ管理者ロール(roles/resourcemanager.tagAdmin)か、次の権限を持つ別のロールが必要です。

必要な権限

  • resourcemanager.tagKeys.create
  • resourcemanager.tagKeys.update
  • resourcemanager.tagKeys.delete
  • resourcemanager.tagKeys.list
  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.getIamPolicy
  • resourcemanager.tagKeys.setIamPolicy
  • resourcemanager.tagValues.create
  • resourcemanager.tagValues.update
  • resourcemanager.tagValues.delete
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • resourcemanager.tagValues.getIamPolicy
  • resourcemanager.tagValues.setIamPolicy

組織レベルでタグを管理するには、組織リソースに対する組織閲覧者のロール(roles/resourcemanager.organizationViewer)が必要です。

リソースのタグを管理する

リソースに付加されたタグを追加または削除するには、タグユーザー ロール(roles/resourcemanager.tagUser)、またはタグ値と、タグ値を付加するリソースに対して同等の権限を持つ別のロールが必要です。タグユーザー ロールには次の権限が含まれます。

必要な権限

  • タグ値を付加するリソースに対して必要な権限:
    • リソース固有の createTagBinding 権限(Compute Engine インスタンスの compute.instances.createTagBinding など)
    • リソース固有の deleteTagBinding 権限(Compute Engine インスタンスの compute.instances.deleteTagBinding など)
  • タグ値に対して必要な権限:
    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete
  • プロジェクトとタグの定義を閲覧できる権限:
    • resourcemanager.tagValues.get
    • resourcemanager.tagValues.list
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.projects.get

リポジトリにタグを添付する

プロジェクト管理者がタグを作成したら、リポジトリにタグ付けできるようになります。各タグには、キーと値が 1 つずつ設定されています。リポジトリにタグを適用するには、リポジトリに値をバインドします。

タグをリポジトリに適用するには:

コンソール

  1. 管理者から適用するタグの値を取得します。

    次のいずれかの識別子の種類でタグの値を適用できます。

    • 名前空間名(例: 123456789012/env/dev
    • 永続的な ID(例: tagValues/567890123456
  2. Google Cloud コンソールで [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  3. タグを適用するリポジトリを選択します。

  4. [リポジトリの詳細] セクションで、[すべてを表示] をクリックします。

    継承されたタグを含む、リポジトリの既存のタグが表示されます。

  5. 編集 タグを編集アイコンをクリックします。

  6. [直接タグ] セクションで、[スコープの選択] をクリックします。

  7. リポジトリ プロジェクトを選択します。

  8. [キー] フィールドに入力してタグリストにフィルタを適用し、タグキーを選択します。

  9. [] フィールドに入力してタグリストにフィルタを適用し、タグ値を選択します。

  10. [保存] をクリックします。

  11. [確認] をクリックします。

    タグがリポジトリに適用されます。

gcloud CLI

  1. 管理者から適用するタグの値を取得します。

    次のいずれかの識別子の種類でタグの値を適用できます。

    • 名前空間名(例: 123456789012/env/dev
    • 永続的な ID(例: tagValues/567890123456
  2. 次のコマンドでタグの値を適用します。

    gcloud alpha resource-manager tags bindings create \
        --tag-value=TAG_VALUE \
        --parent=REPOSITORY_ID \
        --location=LOCATION
    

    次の値を置き換えます。

    • TAG_VALUE は、適用するタグの値の永続的な ID または名前空間付きの名前です。

    • REPOSITORY_ID は、リソースのタイプ(//artifactregistry.googleapis.com/)を識別する API ドメイン名を含む、リポジトリの完全な ID です。例: //artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo

    • LOCATION は、リポジトリの場所です。

    次に例を示します。

    • タグの値: 815471563813/env/dev
    • プロジェクト: my-project
    • リポジトリ: my-repo
    • リポジトリの場所: us-east1

    リポジトリにタグを適用するには、次の gcloud CLI コマンドを実行します。

    gcloud alpha resource-manager tags bindings create \
        --tag-value=815471563813/env/dev \
        --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
        --location=us-east1
    

リポジトリに添付されたタグの一覧表示

アクセス権があるリソースに適用されているタグを一覧表示できます。

コンソール

  1. Google Cloud コンソールで [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. 表示するリポジトリを選択します。

  3. [リポジトリの詳細] セクションで、[すべてを表示] をクリックします。

    [タグ] リストには、直接タグを含むすべてのリポジトリタグと、リソース階層の上位から継承されたタグが表示されます。

gcloud CLI

リポジトリに適用されたタグを一覧表示するには、次のコマンドを実行します。

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

このコマンドは、指定されたリソースに直接適用されたタグのみを一覧表示するため、親プロジェクトまたはその上位から継承されたタグは返しません。--parent フラグが指定されたリポジトリではなくプロジェクトを指定すると、親プロジェクトから継承されたタグを一覧表示できます。

たとえば、次のコマンドは、プロジェクト my-project と場所 us-east1 のリポジトリ my-repo に適用されたタグが一覧表示されます。

gcloud alpha resource-manager tags bindings list \
    --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
    --location=us-east1

このコマンドは、プロジェクト番号 7890123456 に適用されたタグを一覧表示します。

gcloud alpha resource-manager tags bindings list \
    --parent=//cloudresourcemanager.googleapis.com/projects/7890123456 \

リポジトリからタグを接続解除する

リポジトリに直接適用されているタグの適用を解除することができます。親プロジェクトまたはリソース階層の別の部分から継承したタグを削除する必要がある場合は、プロジェクト管理者がタグを持つリソースからタグを切断する必要があります。

リポジトリに適用されているタグを削除するには:

コンソール

  1. 削除するタグ値を取得します。タグ値がわからない場合は、リポジトリに適用されているタグを一覧表示します。

  2. Google Cloud コンソールで [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  3. リポジトリを選択します。

  4. [リポジトリの詳細] セクションで、[すべてを表示] をクリックします。

    継承されたタグを含む、リポジトリの既存のタグが表示されます。

  5. 編集 タグを編集アイコンをクリックします。

  6. [直接タグ] セクションで、削除するタグを見つけます。

  7. 削除するタグの横にある [削除] アイコンをクリックします。

  8. [保存] をクリックします。

  9. [確認] をクリックします。

    タグがリポジトリから削除されます。

gcloud CLI

  1. 削除するタグ値を取得します。タグ値がわからない場合は、リポジトリに適用されているタグを一覧表示します。

  2. 次のコマンドでタグの値の適用を解除します。

    gcloud alpha resource-manager tags bindings delete \
        --tag-value=TAG_VALUE \
        --parent=REPOSITORY_ID \
        --location=LOCATION
    

    次の値を置き換えます。

    • 適用を解除する TAG_VALUE タグの値。

    • REPOSITORY_ID は、リソースのタイプ(//artifactregistry.googleapis.com/)を識別する API ドメイン名を含む、リポジトリの完全な ID です。例: //artifactregistry.googleapis.com/projects/my-project/my-repo

    • LOCATION は、リポジトリの場所です。

    次に例を示します。

    • タグの値: 815471563813/env/dev
    • プロジェクト: my-project
    • リポジトリ: my-repo
    • リポジトリの場所: us-east1

    次の gcloud CLI コマンドは、リポジトリからタグの適用を解除します。

    gcloud alpha resource-manager tags bindings delete \
        --tag-value=815471563813/env/dev \
        --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
        --location=us-east1
    

次のステップ