このガイドでは、リージョン シークレットのタグを作成して管理する方法について説明します。 タグを使用すると、関連する Secret Manager シークレットをグループ化し、タグに基づいてこれらのリソースに関するメタデータを保存できます。
タグについて
タグは、 Cloud de Confiance by S3NS内のリソースに適用できる Key-Value ペアです。タグを使用すると、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーの許可や拒否を行うことができます。たとえば、リソースに特定のタグがあるかどうかに基づいて、Identity and Access Management(IAM)のロールを条件付きで付与できます。 詳細については、タグの概要をご覧ください。
タグは、タグと リソースを結びつけるタグ バインディング リソースを作成することによって、リソースに Cloud de Confiance by S3NS 適用されます。
必要な権限
タグの管理に必要な権限を取得するため、 次の IAM ロールを付与するように管理者に依頼してください。
- タグ閲覧者 (
roles/resourcemanager.tagViewer) タグが適用されているリソースに対する -
組織レベルでタグを表示および管理する:
組織閲覧者 (
roles/resourcemanager.organizationViewer) 組織に対する -
タグの定義を作成、更新、削除する:
Tag Administrator (
roles/resourcemanager.tagAdmin) タグの作成、更新、削除を行うリソースに対する -
リソースにタグを適用する、リソースからタグを削除する:
Tag User (
roles/resourcemanager.tagUser) タグの値、タグの値を適用または削除するリソースに対する
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
タグを Secret Manager シークレットに適用するには、Secret Manager 管理者ロール(roles/secretmanager.admin)が必要です。
タグキーとタグ値を作成する
タグを適用する前に、タグを作成してその値を構成する必要があります。 詳細については、タグの作成と タグ値の追加をご覧ください。
リソースの作成時にタグを追加する
タグは、リージョン シークレットの作成時に追加できます。これにより、リソースの重要なメタデータを提供できるだけでなく、整理、費用追跡、ポリシーの自動適用にも役立ちます。
コンソール
- [Secret Manager] ページに移動します。 Cloud de Confiance コンソールで
- [Secret Manager] ページで、[リージョン シークレット] タブをクリックします。
- 新しいリージョン シークレットを作成するオプションを選択します。
- [タグを管理] をクリックします。
- 組織が [タグを管理] パネルに表示されない場合は、 [タグのスコープを選択] をクリックして、組織またはプロジェクトを選択します。
- [タグを追加] をクリックします。
- リストからタグキーとタグ値を選択します。キーワードを使用してリストをフィルタできます。
- [保存] をクリックします。[**タグ**] セクションがタグ 情報で更新されます。
- リージョン シークレットを作成します。指定したタグを使用して、新しいリージョン シークレット が作成されます。
gcloud
後述のコマンドデータを使用する前に、 次のように置き換えます。
- SECRET_ID: シークレットの一意の識別子。
- LOCATION: シークレットのロケーション。
- TAG_KEY: 適用されるタグキーの永続 ID または名前空間名(例:
tagKeys/567890123456)。 - TAG_VALUE: 適用されるタグ値の永続 ID または名前空間名(例:
tagValues/567890123456)。
複数のタグを指定する場合は、タグをカンマで区切ります(例: TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2)。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud secrets create SECRET_ID --location=LOCATION --tags=TAG_KEY=TAG_VALUE
Windows(PowerShell)
gcloud secrets create SECRET_ID --location=LOCATION --tags=TAG_KEY=TAG_VALUE
Windows(cmd.exe)
gcloud secrets create SECRET_ID --location=LOCATION --tags=TAG_KEY=TAG_VALUE
REST
リクエストのデータを使用する前に、 次のように置き換えます。
- LOCATION: シークレットのロケーション
- PROJECT_ID: プロジェクトの ID
- SECRET_ID: シークレットの一意の識別子
- TAGKEY_NAME: 適用されるタグキーの永続 ID または名前空間名(例:
tagKeys/567890123456)。 - TAGVALUE_NAME: 適用されるタグ値の永続 ID または名前空間名(例:
tagValues/567890123456)。
HTTP メソッドと URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID
リクエストの本文(JSON):
{
"tags": {
"TAGKEY_NAME": "TAGVALUE_NAME"
}
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID"
PowerShell
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
C#
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境
変数を s3nsapis.fr に設定します。
このコードを実行するには、まず C# 開発環境を設定し、 Secret Manager C# SDK をインストールします。 Compute Engine または GKE では、 `cloud-platform` スコープを使用して認証する必要があります。
Go
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境
変数を s3nsapis.fr に設定します。
このコードを実行するには、まず Go 開発環境を設定し、 Secret Manager Go SDK をインストールします。 Compute Engine または GKE では、 `cloud-platform` スコープを使用して認証する必要があります。
Java
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境
変数を s3nsapis.fr に設定します。
このコードを実行するには、まず Java 開発環境を設定し、 Secret Manager Java SDK をインストールします。 Compute Engine または GKE では、 `cloud-platform` スコープを使用して認証する必要があります。
Node.js
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境
変数を s3nsapis.fr に設定します。
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。Compute Engine または GKE では、 `cloud-platform` スコープを使用して認証する必要があります。
PHP
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境
変数を s3nsapis.fr に設定します。
このコードを実行するには、まずGoogle Cloud での PHP の使用について確認して、 Secret Manager PHP SDK をインストールします。 Compute Engine または GKE では、 `cloud-platform` スコープを使用して認証する必要があります。
Python
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境
変数を s3nsapis.fr に設定します。
このコードを実行するには、まず Python 開発環境を設定し、 Secret Manager Python SDK をインストールします。 Compute Engine または GKE では、 `cloud-platform` スコープを使用して認証する必要があります。
Ruby
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境
変数を s3nsapis.fr に設定します。
このコードを実行するには、まず Ruby 開発環境を設定し、 Secret Manager Ruby SDK をインストールします。 Compute Engine または GKE では、 `cloud-platform` スコープを使用して認証する必要があります。
既存のリソースにタグを追加する
既存のリージョン シークレットにタグを追加する手順は次のとおりです。
コンソール
- [Secret Manager] ページ Cloud de Confiance に移動します。
- タグを適用するリージョン シークレットを選択します。
- [Tags] をクリックします。
- 組織が [タグ] パネルに表示されない場合は、[スコープの選択] をクリックします。組織を選択して [開く] をクリックします。
- [タグを追加] をクリックします。
- リストからタグキーとタグ値を選択します。キーワードを使用してリストをフィルタできます。
- [保存] をクリックします。
- [確認] ダイアログで、[確認] をクリックしてタグを適用します。
通知により、タグが更新されたことを確認します。
gcloud
リージョン シークレットにタグを適用するには、
タグ バインディング リソースを
gcloud resource-manager tags bindings create コマンドを使用して作成する必要があります。
後述のコマンドデータを使用する前に、 次のように置き換えます。
TAGVALUE_NAME: 適用されるタグ値の永続 ID または 名前空間名(例:tagValues/567890123456)。RESOURCE_IDはリソースの完全な ID で、リソースのタイプ(//secretmanager.googleapis.com/)を識別するために API ドメイン名が含まれています。たとえば、projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_IDにタグを付加する場合、完全な ID は//secretmanager.googleapis.com/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_IDです。LOCATION: リソースの ロケーション。フォルダやプロジェクトなどのグローバル リソースにタグを適用する場合は、このフラグを省略します。 リージョン リソースまたはゾーンリソースにタグを適用する場合は、ロケーションを指定する必要があります。たとえば、us-central1(リージョン)やus-central1-a(ゾーン)などです。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud resource-manager tags bindings create \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Windows(PowerShell)
gcloud resource-manager tags bindings create ` --tag-value=TAGVALUE_NAME ` --parent=RESOURCE_ID ` --location=LOCATION
Windows(cmd.exe)
gcloud resource-manager tags bindings create ^ --tag-value=TAGVALUE_NAME ^ --parent=RESOURCE_ID ^ --location=LOCATION
Node.js
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境
変数を s3nsapis.fr に設定します。
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。Compute Engine または GKE では、 `cloud-platform` スコープを使用して認証する必要があります。
PHP
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境
変数を s3nsapis.fr に設定します。
このコードを実行するには、まずGoogle Cloud での PHP の使用について確認して、 Secret Manager PHP SDK をインストールします。 Compute Engine または GKE では、 `cloud-platform` スコープを使用して認証する必要があります。
Python
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境
変数を s3nsapis.fr に設定します。
このコードを実行するには、まず Python 開発環境を設定し、 Secret Manager Python SDK をインストールします。 Compute Engine または GKE では、 `cloud-platform` スコープを使用して認証する必要があります。
リソースに適用されたタグを一覧表示する
リージョン シークレットに直接適用されているか、リソースによって継承されているタグ バインディングのリストを表示できます。
コンソール
- [Secret Manager] ページに移動します。 Cloud de Confiance
- タグは、シークレットの [タグ] 列に表示されます。
gcloud
リソースに適用されたタグ バインディングのリストを取得するには、
gcloud resource-manager tags bindings list コマンドを使用します。
後述のコマンドデータを使用する前に、 次のように置き換えます。
RESOURCE_IDはリソースの完全な ID で、リソースのタイプ(//secretmanager.googleapis.com/)を識別するために API ドメイン名が含まれています。たとえば、projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_IDにタグを付加する場合、完全な ID は//secretmanager.googleapis.com/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_IDです。LOCATION: リソースのロケーション。フォルダやプロジェクトなどのグローバル リソースに適用されているタグを表示する場合は、このフラグを省略します。リージョン リソースまたはゾーンリソースに適用されているタグを表示する場合は、 たとえば、us-central1(リージョン)やus-central1-a(ゾーン)などのロケーションを指定する必要があります。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID \ --location=LOCATION
Windows(PowerShell)
gcloud resource-manager tags bindings list ` --parent=RESOURCE_ID ` --location=LOCATION
Windows(cmd.exe)
gcloud resource-manager tags bindings list ^ --parent=RESOURCE_ID ^ --location=LOCATION
次のようなレスポンスが返されます。
name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
tagValue: tagValues/567890123456
resource: //secretmanager.googleapis.com/projects/project-abc/secrets/secret-xyz
リソースからタグを削除する
リージョン シークレットに直接適用されたタグを解除できます。継承されたタグは、同じキーと別の値を持つタグを適用することでオーバーライドできますが、削除することはできません。
コンソール
- [Secret Manager] ページに移動します。 Cloud de Confiance
- タグを削除するリージョン シークレットを選択します。
- [Tags] をクリックします。
- [タグ] パネルで、削除するタグの横にある [項目を削除] をクリックします。
- [保存] をクリックします。
- In the [Confirm] dialog, click [Confirm] to detach the tag.
通知により、タグが更新されたことを確認します。
gcloud
タグ バインディングを削除するには、gcloud resource-manager tags bindings delete コマンドを使用します。
後述のコマンドデータを使用する前に、 次のように置き換えます。
TAGVALUE_NAME: 適用されるタグ値の永続 ID または 名前空間名(例:tagValues/567890123456)。RESOURCE_IDはリソースの完全な ID で、リソースのタイプ(//secretmanager.googleapis.com/)を識別するために API ドメイン名が含まれています。たとえば、projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_IDにタグを付加する場合、完全な ID は//secretmanager.googleapis.com/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_IDです。LOCATION: リソースの ロケーション。フォルダやプロジェクトなどのグローバル リソースにタグを適用する場合は、このフラグを省略します。 リージョン リソースまたはゾーンリソースにタグを適用する場合は、ロケーションを指定する必要があります。たとえば、us-central1(リージョン)やus-central1-a(ゾーン)などです。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud resource-manager tags bindings delete \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Windows(PowerShell)
gcloud resource-manager tags bindings delete ` --tag-value=TAGVALUE_NAME ` --parent=RESOURCE_ID ` --location=LOCATION
Windows(cmd.exe)
gcloud resource-manager tags bindings delete ^ --tag-value=TAGVALUE_NAME ^ --parent=RESOURCE_ID ^ --location=LOCATION
タグキーとタグ値を削除する
タグキーまたは値の定義を削除する場合は、リージョン シークレットからタグの適用が解除されていることを確認してください。タグ定義自体を削除する前に、既存のタグの適用(タグ バインディング)を削除する必要があります。詳細については、タグの削除をご覧ください。
Identity and Access Management の条件とタグ
タグと IAM Conditions を使用すると、階層内のユーザーに条件付きでロール バインディングを付与できます。条件付きロール バインディングを含む IAM ポリシーが適用されている場合、リソースに適用されたタグを変更または削除すると、そのリソースへのユーザー アクセスを削除できます。詳細については、Identity and Access Management の条件とタグをご覧ください。