タグを使用すると、 Google Cloud組織内のレポート、監査、アクセス制御のために、 Google Cloud 全体のリポジトリやその他のリソースをグループ化できます。
自動化と課金のために Artifact Registry 内でリポジトリをグループ化するには、ラベルを使用します。タグとラベルは互いに独立して機能するため、両方を同じリポジトリに適用できます。 タグとラベルの違いについて詳しくは、タグとラベルをご覧ください。
タグとは
タグは Key-Value ペアで、リソースに対してきめ細かいアクセス制御を行うことができます。
プロジェクト管理者は、組織レベルで Google Cloud 全体のリソースにタグを作成し、Resource Manager で管理します。Artifact Registry リポジトリにタグ付けすると、IAM 条件を伴うタグを使用して、リポジトリに条件付きのアクセス権を付与できます。個々のアーティファクトにタグ付けすることはできません。
次の制限事項にご注意ください。
組織のポリシーでは、親プロジェクトまたはその上位から継承されたタグを条件付きで参照できますが、リポジトリに直接適用されたタグは使用できません。
リポジトリへのタグの適用とタグ バインディングの表示で Cloud Audit logs は生成されません。
タグとタグを使用した条件付きアクセス制御の詳細については、タグとアクセス制御をご覧ください。
必要な権限
タグの管理に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
タグが適用されているリソースに対する タグ閲覧者 (
roles/resourcemanager.tagViewer
) -
組織レベルでタグを表示および管理する: 組織に対する組織閲覧者 (
roles/resourcemanager.organizationViewer
) -
タグの定義を作成、更新、削除する: タグの作成、更新、削除を行うリソースに対するタグ管理者 (
roles/resourcemanager.tagAdmin
) -
リソースにタグを適用またはリソースからタグを削除する:
タグユーザー (
roles/resourcemanager.tagUser
) タグ値と、タグ値を適用または削除するリソースに対して
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
リポジトリにタグを添付する
プロジェクト管理者がタグを作成したら、リポジトリにタグ付けできるようになります。各タグには、キーと値が 1 つずつ設定されています。リポジトリにタグを適用するには、リポジトリに値をバインドします。
タグをリポジトリに適用するには:
コンソール
管理者から適用するタグの値を取得します。
次のいずれかの識別子の種類でタグの値を適用できます。
- 名前空間名(例:
123456789012/env/dev
) - 永続的な ID(例:
tagValues/567890123456
)
- 名前空間名(例:
Google Cloud コンソールで [リポジトリ] ページを開きます。
タグを適用するリポジトリを選択します。
[リポジトリの詳細] セクションで、[すべてを表示] をクリックします。
リポジトリの既存のタグ(継承されたタグを含む)が表示されます。
タグを編集アイコンをクリックします。
[直接タグ] セクションで、[スコープの選択] をクリックします。
リポジトリ プロジェクトを選択します。
[キー] フィールドにタグリストをフィルタするテキストを入力し、タグキーを選択します。
[値] フィールドにタグリストをフィルタする文字列を入力し、タグ値を選択します。
[保存] をクリックします。
[確認] をクリックします。
タグがリポジトリに適用されます。
gcloud CLI
管理者から適用するタグの値を取得します。
次のいずれかの識別子の種類でタグの値を適用できます。
- 名前空間名(例:
123456789012/env/dev
) - 永続的な ID(例:
tagValues/567890123456
)
- 名前空間名(例:
次のコマンドでタグの値を適用します。
gcloud 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 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 resource-manager tags bindings list \
--parent=REPOSITORY_ID \
--location=LOCATION
このコマンドは、指定されたリソースに直接適用されたタグのみを一覧表示するため、親プロジェクトまたはその上位から継承されたタグは返しません。--parent
フラグが指定されたリポジトリではなくプロジェクトを指定すると、親プロジェクトから継承されたタグを一覧表示できます。
たとえば、次のコマンドは、プロジェクト my-project
と場所 us-east1
のリポジトリ my-repo
に適用されたタグが一覧表示されます。
gcloud resource-manager tags bindings list \
--parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
--location=us-east1
このコマンドは、プロジェクト番号 7890123456
に適用されたタグを一覧表示します。
gcloud resource-manager tags bindings list \
--parent=//cloudresourcemanager.googleapis.com/projects/7890123456 \
リポジトリからタグを接続解除する
リポジトリに直接適用されているタグの適用を解除することができます。親プロジェクトまたはリソース階層の別の部分から継承したタグを削除する必要がある場合は、プロジェクト管理者がタグを持つリソースからタグを切断する必要があります。
リポジトリに適用されているタグを削除するには:
コンソール
削除するタグの値を取得します。タグ値がわからない場合は、リポジトリに適用されているタグを一覧表示します。
Google Cloud コンソールで [リポジトリ] ページを開きます。
リポジトリを選択します。
[リポジトリの詳細] セクションで、[すべてを表示] をクリックします。
リポジトリの既存のタグ(継承されたタグを含む)が表示されます。
タグを編集アイコンをクリックします。
[直接タグ] セクションで、削除するタグを見つけます。
削除するタグの横にある
[削除] アイコンをクリックします。[保存] をクリックします。
[確認] をクリックします。
タグがリポジトリから削除されます。
gcloud CLI
削除するタグの値を取得します。タグ値がわからない場合は、リポジトリに適用されているタグを一覧表示します。
次のコマンドでタグの値の適用を解除します。
gcloud 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 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
次のステップ
- リポジトリ ラベルについて学習する。