Secret Manager では、シークレットはシークレット バージョンの集合のラッパーです。シークレットにはラベルやレプリケーションなどのメタデータは保存されますが、実際のシークレットは含まれません。このトピックでは、シークレットを管理する方法について説明しますシークレットのバージョンを管理することもできます。
始める前に
プロジェクトごとに 1 回、Secret Manager とローカル環境を構成します。
シークレットの一覧表示
次の例では、ご自身がプロジェクトでの表示権限を持つすべてのシークレットを一覧表示する方法を示します。
シークレットを一覧表示するには、シークレット、プロジェクト、フォルダ、または組織に対する Secret 閲覧者のロール(roles/secretmanager.viewer
)が必要です。シークレット バージョンには IAM ロールを付与できません。
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
このページには、プロジェクト内のシークレットのリストが表示されます。
gcloud CLI
Secret Manager をコマンドラインで使用するには、まず Google Cloud CLI のバージョン 378.0.0 以降をインストールまたはアップグレードします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
$ gcloud secrets list
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
API
次の例では、API の使用を示すために curl を使用します。gcloud auth print-access-token を使用してアクセス トークンを生成できます。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json"
シークレットの詳細の取得
以下の例は、メタデータを表示してシークレットの詳細を取得する方法を示しています。
シークレットのメタデータを表示するには、シークレット、プロジェクト、フォルダ、組織に対するシークレット閲覧者のロール(roles/secretmanager.viewer
)が必要です。シークレット バージョンには IAM ロールを付与できません。
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、記述するシークレットの名前をクリックします。
-
[シークレットの詳細] ページにシークレットに関する情報が一覧表示されます。
gcloud CLI
Secret Manager をコマンドラインで使用するには、まず Google Cloud CLI のバージョン 378.0.0 以降をインストールまたはアップグレードします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
$ gcloud secrets describe secret-id
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
API
次の例では、API の使用を示すために curl を使用します。gcloud auth print-access-token を使用してアクセス トークンを生成できます。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json"
シークレットへのアクセスの管理
以下の例は、シークレット マテリアル自体を含むシークレット バージョンへのアクセスを管理する方法を示しています。アクセス制御と権限の詳細については、Secret Manager IAM のドキュメントをご覧ください。
シークレットへのアクセスを管理するには、シークレット、プロジェクト、フォルダ、または組織に対するシークレット管理者のロール(roles/secretmanager.admin
)が必要です。シークレット バージョンには IAM ロールを付与できません。
アクセスを許可するには:
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、シークレットの名前の横にあるチェックボックスをオンにします。
-
まだ開いていない場合は、[情報パネルを表示] をクリックしてパネルを開きます。
-
情報パネルで [プリンシパルを追加] をクリックします。
-
[新しいプリンシパル] テキストエリアに、追加するメンバーのメールアドレスを入力します。
-
[ロールを選択] プルダウンで、[シークレット マネージャー]、[Secret Manager のシークレット アクセサー] の順に選択します。
gcloud CLI
Secret Manager をコマンドラインで使用するには、まず Google Cloud CLI のバージョン 378.0.0 以降をインストールまたはアップグレードします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
$ gcloud secrets add-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
ここで、member はユーザー、グループ、サービス アカウントなどの IAM メンバーです。
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
API
次の例では、API の使用を示すために curl を使用します。gcloud auth print-access-token を使用してアクセス トークンを生成できます。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
注: 他の例と異なり、IAM ポリシー全体が置き換えられます。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:setIamPolicy" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"policy\": {\"bindings\": [{\"members\": [\"member\"], \"role\": \"roles/secretmanager.secretAccessor\"}]}}"
アクセス権を取り消すには:
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、シークレットの名前の横にあるチェックボックスをオンにします。
-
まだ開いていない場合は、[情報パネルを表示] をクリックしてパネルを開きます。
-
情報パネルで、[Secret Manager のシークレット アクセサー] を展開します。
-
アクセス権を取り消したい対象の横にあるゴミ箱アイコンをクリックします。
-
ポップアップで確認し、[削除] をクリックします。
gcloud CLI
Secret Manager をコマンドラインで使用するには、まず Google Cloud CLI のバージョン 378.0.0 以降をインストールまたはアップグレードします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
$ gcloud secrets remove-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
ここで、member はユーザー、グループ、サービス アカウントなどの IAM メンバーです。
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
API
次の例では、API の使用を示すために curl を使用します。gcloud auth print-access-token を使用してアクセス トークンを生成できます。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
注: 他の例と異なり、IAM ポリシー全体が置き換えられます。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:setIamPolicy" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"policy\": {\"bindings\": []}}"
シークレットの更新
以下の例は、シークレットのメタデータを更新する方法を示しています。
シークレットのメタデータを更新するには、シークレットまたはプロジェクトに対するシークレット管理者のロール(roles/secretmanager.admin
)が必要です。シークレット バージョンには IAM ロールを付与できません。
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、シークレットの名前の横にあるチェックボックスをオンにします。
-
[情報パネル] が閉じている場合は、[情報パネルを表示] をクリックして表示します。
-
情報パネルで、[ラベル] タブを選択します。
-
[ラベルを追加] をクリックし、キー
secretmanager
にrocks
などの値を入力します。 -
[保存] をクリックします。
gcloud CLI
Secret Manager をコマンドラインで使用するには、まず Google Cloud CLI のバージョン 378.0.0 以降をインストールまたはアップグレードします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
$ gcloud secrets update secret-id \
--update-labels=key=value
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
API
次の例では、API の使用を示すために curl を使用します。gcloud auth print-access-token を使用してアクセス トークンを生成できます。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id?updateMask=labels" \
--request "PATCH" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{'labels': {'key': 'value'}}"
シークレットの削除
次の例は、シークレットとそのすべてのバージョンを削除する方法を示しています。この操作を元に戻すことはできません。 サービスまたはワークロードが削除されたシークレットにアクセスを試みると、Not Found
エラーが返されます。
シークレットを削除するには、シークレット、プロジェクト、フォルダ、または組織に対するシークレット管理者のロール(roles/secretmanager.admin
)が必要です。シークレット バージョンには IAM ロールを付与できません。
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[Secret Manager] ページのシークレットの [アクション] 列で、[もっと見る
] をクリックします。 -
表示されるメニューで [削除] をクリックします。
-
[シークレットの削除] ダイアログで、シークレットの名前を入力します。
-
[シークレットを削除] ボタンをクリックします。
gcloud CLI
Secret Manager をコマンドラインで使用するには、まず Google Cloud CLI のバージョン 378.0.0 以降をインストールまたはアップグレードします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
$ gcloud secrets delete secret-id
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
API
次の例では、API の使用を示すために curl を使用します。gcloud auth print-access-token を使用してアクセス トークンを生成できます。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id" \
--request "DELETE" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json"
次のステップ
- シークレット バージョンの管理について学習する。
- シークレットへのアクセスの管理について詳細を確認する。
- シークレットの作成とアクセスについて確認する。
- 顧客管理の暗号鍵を使用してシークレットを暗号化する方法を学習する。