タグを使用すると、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 つずつ設定されています。リポジトリにタグを適用するには、リポジトリに値をバインドします。
タグをリポジトリに適用するには:
コンソール
管理者から適用するタグの値を取得します。
次のいずれかの識別子の種類でタグの値を適用できます。
- 名前空間名(例:
123456789012/env/dev
) - 永続的な ID(例:
tagValues/567890123456
)
- 名前空間名(例:
Google Cloud コンソールで [リポジトリ] ページを開きます。
タグを適用するリポジトリを選択します。
[リポジトリの詳細] セクションで、[すべてを表示] をクリックします。
継承されたタグを含む、リポジトリの既存のタグが表示されます。
タグを編集アイコンをクリックします。
[直接タグ] セクションで、[スコープの選択] をクリックします。
リポジトリ プロジェクトを選択します。
[キー] フィールドに入力してタグリストにフィルタを適用し、タグキーを選択します。
[値] フィールドに入力してタグリストにフィルタを適用し、タグ値を選択します。
[保存] をクリックします。
[確認] をクリックします。
タグがリポジトリに適用されます。
gcloud CLI
管理者から適用するタグの値を取得します。
次のいずれかの識別子の種類でタグの値を適用できます。
- 名前空間名(例:
123456789012/env/dev
) - 永続的な ID(例:
tagValues/567890123456
)
- 名前空間名(例:
次のコマンドでタグの値を適用します。
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
リポジトリに添付されたタグの一覧表示
アクセス権があるリソースに適用されているタグを一覧表示できます。
コンソール
Google Cloud コンソールで [リポジトリ] ページを開きます。
表示するリポジトリを選択します。
[リポジトリの詳細] セクションで、[すべてを表示] をクリックします。
[タグ] リストには、直接タグを含むすべてのリポジトリタグと、リソース階層の上位から継承されたタグが表示されます。
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 \
リポジトリからタグを接続解除する
リポジトリに直接適用されているタグの適用を解除することができます。親プロジェクトまたはリソース階層の別の部分から継承したタグを削除する必要がある場合は、プロジェクト管理者がタグを持つリソースからタグを切断する必要があります。
リポジトリに適用されているタグを削除するには:
コンソール
削除するタグ値を取得します。タグ値がわからない場合は、リポジトリに適用されているタグを一覧表示します。
Google Cloud コンソールで [リポジトリ] ページを開きます。
リポジトリを選択します。
[リポジトリの詳細] セクションで、[すべてを表示] をクリックします。
継承されたタグを含む、リポジトリの既存のタグが表示されます。
タグを編集アイコンをクリックします。
[直接タグ] セクションで、削除するタグを見つけます。
削除するタグの横にある
[削除] アイコンをクリックします。[保存] をクリックします。
[確認] をクリックします。
タグがリポジトリから削除されます。
gcloud CLI
削除するタグ値を取得します。タグ値がわからない場合は、リポジトリに適用されているタグを一覧表示します。
次のコマンドでタグの値の適用を解除します。
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
次のステップ
- リポジトリ ラベルについて学習する。