このガイドでは、Secret Manager シークレットのタグを作成して管理する方法について説明します。タグを使用すると、関連する Secret Manager のシークレットをグループ化し、タグに基づいてこれらのリソースに関するメタデータを保存できます。
タグについて
タグは、Google Cloud内のリソースに適用できる Key-Value ペアです。タグを使用すると、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーの許可や拒否を行うことができます。たとえば、リソースに特定のタグがあるかどうかに基づいて、Identity and Access Management(IAM)のロールを条件付きで付与できます。タグの詳細については、タグの概要をご覧ください。
タグは、タグと Google Cloud リソースを結びつけるタグ バインディング リソースを作成することによって、リソースに適用されます。
必要な権限
タグの管理に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
タグが適用されているリソースに対する タグ閲覧者 (
roles/resourcemanager.tagViewer
) -
組織レベルでタグを表示および管理する: 組織に対する組織閲覧者 (
roles/resourcemanager.organizationViewer
) -
タグの定義を作成、更新、削除する: タグの作成、更新、削除を行うリソースに対するタグ管理者 (
roles/resourcemanager.tagAdmin
) -
リソースにタグを適用またはリソースからタグを削除する:
タグユーザー (
roles/resourcemanager.tagUser
) タグ値と、タグ値を適用または削除するリソースに対して
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
タグを Secret Manager シークレットに適用するには、Secret Manager 管理者ロール(roles/secretmanager.admin
)が必要です。
タグキーとタグ値を作成する
タグを適用する前に、タグを作成してその値を構成する必要があります。タグキーとタグ値を作成する方法については、タグの作成とタグ値の追加をご覧ください。
リソースの作成時にタグを追加する
タグは、シークレットの作成時に追加できます。リソースの作成時にタグを追加すると、リソースの重要なメタデータをすぐに提供できるだけでなく、整理、費用追跡、ポリシーの自動適用にも役立ちます。
コンソール
- Google Cloud コンソールの [Secret Manager] ページに移動します。
- 新しいシークレットを作成するオプションを選択します。
- [タグを管理] をクリックします。
- 組織が [タグの管理] パネルに表示されない場合は、[スコープの選択] をクリックします。組織レベルまたはプロジェクト レベルで定義されたタグを追加し、その ID を入力します。
- [タグを追加] をクリックします。
- リストから付加するタグのキーを選択します。キーワードを入力することで、リストをフィルタできます。
- リストから付加するタグの値を選択します。キーワードを入力することで、リストをフィルタできます。
- [保存] をクリックします。[タグ] セクションがタグ情報で更新されます。
- シークレットを作成します。新しいシークレットは、指定されたタグで作成されます。
gcloud
シークレットの作成時にタグを追加するには、次のコマンドを実行します。
gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE
次のように置き換えます。
- SECRET_ID: シークレットの固有識別子
- TAG_KEY: 適用されるタグキーの永続 ID または名前空間付きの名前(例: tagKeys/567890123456)
- TAG_VALUE: 適用されるタグ値の永続 ID または名前空間付きの名前(例: tagValues/567890123456)
複数のタグを指定する場合は、タグをカンマで区切ります(例: TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2
)。
API
次の URL に POST
リクエストを送信します。
https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID
リクエスト本文で次の JSON を指定します。
{ "replication": { "automatic": {} }, "tags": { "TAGKEY_NAME": "TAGVALUE_NAME" } }
次のように置き換えます。
- PROJECT_ID: プロジェクトの ID
- SECRET_ID: シークレットの固有識別子
- TAGKEY_NAME: 適用されるタグキーの永続 ID または名前空間付きの名前(例: tagKeys/567890123456)
- TAGVALUE_NAME: 適用されるタグ値の永続 ID または名前空間付きの名前(例: tagValues/567890123456)
既存のリソースにタグを追加する
既存のシークレットにタグを追加する手順は次のとおりです。
コンソール
- Google Cloud コンソールの [Secret Manager] ページに移動します。
- タグを適用するシークレットを選択します。
- [ タグ] をクリックします。
- 組織が [タグ] パネルに表示されない場合は、[スコープの選択] をクリックします。組織を選択して [開く] をクリックします。
- [タグを追加] をクリックします。
- リストから付加するタグのキーを選択します。リストは、キーワードを入力してフィルタできます。
- リストから付加するタグの値を選択します。リストは、キーワードを入力してフィルタできます。
- [保存] をクリックします。
- [確認] ダイアログで、[確認] をクリックしてタグを適用します。
タグが更新されたことは、通知で確認します。
gcloud
シークレットにタグを付加するには、gcloud resource-manager tags bindings create
コマンドを使用してタグ バインディング リソースを作成する必要があります。
gcloud resource-manager tags bindings create \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID
以下を置き換えます。
TAGVALUE_NAME
: 適用されるタグ値の永続 ID または名前空間名(例:tagValues/567890123456
)。-
RESOURCE_ID
はリソースの完全な ID で、リソースのタイプ(//secretmanager.googleapis.com/
)を識別するために API ドメイン名が含まれています。たとえば、/projects/PROJECT_ID/secrets/SECRET_ID
にタグを付加する場合、完全な ID は//secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID
です。
リソースに適用されたタグを一覧表示する
シークレットに直接適用されているか、リソースによって継承されているタグ バインディングのリストを表示できます。
コンソール
- Google Cloud コンソールの [Secret Manager] ページに移動します。
- タグは、シークレットの [タグ] 列に表示されます。
gcloud
リソースに適用されたタグ バインディングのリストを取得するには、gcloud resource-manager tags bindings list
コマンドを使用します。
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID
以下を置き換えます。
-
RESOURCE_ID
はリソースの完全な ID で、リソースのタイプ(//secretmanager.googleapis.com/
)を識別するために API ドメイン名が含まれています。たとえば、/projects/PROJECT_ID/secrets/SECRET_ID
にタグを付加する場合、完全な ID は//secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID
です。
次のようなレスポンスが返されます。
name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456 tagValue: tagValues/567890123456 resource: //secretmanager.googleapis.com/projects/project-abc/secrets/secret-xyz
リソースからタグを削除する
シークレットに直接適用されたタグを解除できます。継承されたタグは、同じキーと別の値を持つタグを適用することでオーバーライドできますが、削除することはできません。
コンソール
- Google Cloud コンソールの [Secret Manager] ページに移動します。
- タグを削除するシークレットを選択します。
- [ タグ] をクリックします。
- [タグ] パネルで、削除するタグの横にある [ 項目を削除] をクリックします。
- [保存] をクリックします。
- [確認] ダイアログで、[確認] をクリックしてタグを削除します。
タグが更新されたことは、通知で確認します。
gcloud
タグ バインディングを削除するには、gcloud resource-manager tags bindings delete
コマンドを使用します。
gcloud resource-manager tags bindings delete \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID
次のように置き換えます。
TAGVALUE_NAME
: 適用されるタグ値の永続 ID または名前空間名(例:tagValues/567890123456
)。-
RESOURCE_ID
はリソースの完全な ID で、リソースのタイプ(//secretmanager.googleapis.com/
)を識別するために API ドメイン名が含まれています。たとえば、/projects/PROJECT_ID/secrets/SECRET_ID
にタグを付加する場合、完全な ID は//secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID
です。
タグキーとタグ値を削除する
タグキーまたは値の定義を削除する場合は、シークレットからタグの適用が解除されていることを確認してください。タグ定義自体を削除する前に、既存のタグの適用(タグ バインディング)を削除する必要があります。タグキーとタグ値を削除するには、タグの削除をご覧ください。
Identity and Access Management の条件とタグ
タグと IAM Conditions を使用すると、階層内のユーザーに条件付きでロール バインディングを付与できます。条件付きロール バインディングを含む IAM ポリシーが適用されている場合、リソースに適用されたタグを変更または削除すると、そのリソースへのユーザー アクセスを削除できます。詳細については、Identity and Access Management の条件とタグをご覧ください。
次のステップ
- タグをサポートするその他のサービス確認する。
- タグとアクセス制御で、IAM でタグを使用する方法を確認する。