シークレット バージョンには、実際のシークレット データとともに、シークレットに関する状態とメタデータが含まれます。このトピックでは、シークレット バージョンを管理する方法について説明します。
始める前に
プロジェクトごとに 1 回、Secret Manager とローカル環境を構成します。
シークレット バージョンの状態
シークレット バージョンは任意の時点で次のいずれかの状態になります。
有効 - この状態では、シークレット バージョンにアクセスして記述できます。これは新しいシークレット バージョンのデフォルトの状態です。
無効 - この状態では、シークレット バージョンにアクセスできませんが、シークレットのコンテンツはまだ存在します。シークレット バージョンは、再度有効にして復元できます。
破棄 - この状態では、シークレット バージョンの内容は破棄されています。シークレット バージョンを別の状態に変更することはできません。
シークレット バージョンの詳細の取得
次の例は、メタデータを表示して、シークレット バージョンの機密データを除くシークレット バージョンの詳細を取得する方法を示しています。
シークレット バージョンのメタデータを表示するには、シークレット、プロジェクト、フォルダ、または組織に対するシークレット閲覧者のロール(roles/secretmanager.viewer
)が必要です。シークレット バージョンには IAM ロールを付与できません。
ウェブ UI
-
Cloud Console の [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、シークレットの [名前] をクリックします。
-
[Secret の詳細] ページの [バージョン] テーブルで、取得するシークレット バージョンのロケーションを確認します。
-
テーブルでバージョンの ID を確認し、メタデータを読み取ります。
コマンドライン
Secret Manager をコマンドラインで使用するには、まず Cloud SDK のバージョン 305.0.0 以降をインストールまたはアップグレードします。
$ gcloud secrets versions describe version-id --secret="secret-id"
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。
API
次の例では、API の使用を示すために curl を使用します。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions/version-id" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--header "x-goog-user-project: project-id"
シークレットのバージョンの一覧表示
シークレット バージョンを一覧表示すると、そのシークレットに関連するすべてのバージョンと、それぞれの状態(有効、無効、破棄)が返されます。
シークレット バージョンを一覧表示するには、シークレット、プロジェクト、フォルダ、または組織に対するシークレット閲覧者のロール(roles/secretmanager.viewer
)が必要です。シークレット バージョンには IAM ロールを付与できません。
ウェブ UI
-
Cloud Console の [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、シークレットの [名前] をクリックします。
-
[Secret の詳細] ページの [バージョン] テーブルのバージョンのリストが表示されます。
コマンドライン
Secret Manager をコマンドラインで使用するには、まず Cloud SDK のバージョン 305.0.0 以降をインストールまたはアップグレードします。
$ gcloud secrets versions list secret-id
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。
API
次の例では、API の使用を示すために curl を使用します。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--header "x-goog-user-project: project-id"
シークレット バージョンの無効化
シークレット バージョンを無効にすると、そのシークレット バージョンにアクセスできなくなります。シークレットの無効化は、復元できます。
シークレット バージョンを無効にするには、シークレット、プロジェクト、フォルダ、または組織に対するシークレット管理者ロール(roles/secretmanager.admin
)が必要です。シークレット バージョンには IAM ロールを付与できません。
ウェブ UI
-
Cloud Console の [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、シークレットの [名前] をクリックします。
-
[シークレットの詳細] ページの [バージョン] テーブルで、アクセスするシークレット バージョンのロケーションを確認します。
-
[アクション] 列で、[
の詳細] をクリックします。 -
メニューの [無効化] をクリックします。
-
[シークレット バージョンの無効化] ダイアログで、[選択したバージョンを無効化する] ボタンをクリックします。
コマンドライン
Secret Manager をコマンドラインで使用するには、まず Cloud SDK のバージョン 305.0.0 以降をインストールまたはアップグレードします。
$ gcloud secrets versions disable version-id --secret="secret-id"
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。
API
次の例では、API の使用を示すために curl を使用します。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions/version-id?updateMask=state" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--header "x-goog-user-project: project-id" \
--data "{\"state\": \"DISABLED\"}"
シークレット バージョンを有効にする
無効にしたシークレットを有効化すると、再びアクセスできます。
シークレット バージョンを有効にするには、シークレット、プロジェクト、フォルダ、または組織に対するシークレット管理者のロール(roles/secretmanager.admin
)が必要です。シークレット バージョンには IAM ロールを付与できません。
ウェブ UI
-
Cloud Console の [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、シークレットの [名前] をクリックします。
-
[シークレットの詳細] ページの [バージョン] テーブルで、アクセスするシークレット バージョンのロケーションを確認します。
-
[アクション] 列で、[
の詳細] をクリックします。 -
メニューから [有効化] をクリックします。
-
[シークレット バージョンの有効化] ダイアログで、[選択したバージョンの有効化] ボタンをクリックします。
コマンドライン
Secret Manager をコマンドラインで使用するには、まず Cloud SDK のバージョン 305.0.0 以降をインストールまたはアップグレードします。
$ gcloud secrets versions enable version-id --secret="secret-id"
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。
API
次の例では、API の使用を示すために curl を使用します。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions/version-id?updateMask=state" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--header "x-goog-user-project: project-id" \
--data "{\"state\": \"ENABLED\"}"
シークレット バージョンの破棄
シークレット バージョンを破棄すると、アクセスできなくなります。シークレット バージョンの破棄は後から変更できません。予期せぬ問題を確認する場合、破棄する前にシークレット バージョンを無効にし、アプリケーションの動作を一定期間観察することをおすすめします。そうすることで、再有効化できます。
シークレットまたはシークレット バージョンを無効または破棄する場合、変更がシステム全体に反映されるまでには時間がかかります。必要に応じて、シークレットへの IAM アクセスを取り消すことができます。IAM 権限の変更は数秒以内に確保されます。
シークレット バージョンを破棄するには、シークレット、プロジェクト、フォルダ、または組織に対するシークレット管理者のロール(roles/secretmanager.admin
)が必要です。シークレット バージョンには IAM ロールを付与できません。
ウェブ UI
-
Cloud Console の [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、シークレットの [名前] をクリックします。
-
[シークレットの詳細] ページの [バージョン] テーブルで、アクセスするシークレット バージョンのロケーションを確認します。
-
[アクション] 列で、[
の詳細] をクリックします。 -
メニューの [破棄] をクリックします。
-
[シークレット バージョンの破棄] ダイアログで、シークレットの名前を入力します。
-
[選択したバージョンの破棄] ボタンをクリックします。
コマンドライン
Secret Manager をコマンドラインで使用するには、まず Cloud SDK のバージョン 305.0.0 以降をインストールまたはアップグレードします。
$ gcloud secrets versions destroy version-id --secret="secret-id"
C#
このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について確認して、Secret Manager PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Secret Manager Ruby SDK をインストールします。
API
次の例では、API の使用を示すために curl を使用します。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions/version-id:destroy" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--header "x-goog-user-project: project-id"
次のステップ
- シークレットの管理の詳細を確認する。
- シークレットへのアクセスの管理について詳細を確認する。
- シークレットの作成とアクセスについて確認する。