このページでは、時間の経過とともに作成されたシークレットのすべてのバージョンのリストを取得し、特定のシークレット バージョンのメタデータを表示する方法について説明します。
必要なロール
シークレット バージョンを一覧表示してバージョンの詳細を表示するために必要な権限を取得するには、シークレット、プロジェクト、フォルダ、または組織に対する Secret Manager 閲覧者 (roles/secretmanager.viewer
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
シークレット バージョンの一覧表示
シークレットのバージョンを一覧表示すると、次のようなメリットがあります。
-
シークレットが時間の経過とともにどのように変化したか、誰がいつ変更したかを確認できます。これは、監査とコンプライアンスのために必要です。
-
シークレットが誤って更新された場合や不正使用された場合は、以前の正常なバージョンにロールバックできます。
-
使用されていないバージョンを特定して、安全に削除できます。
-
問題のトラブルシューティングを行うことができます。たとえば、アプリケーションで問題が発生した場合は、シークレットの以前のバージョンを調べて、シークレットの変更が原因かどうかを確認できます。
シークレットのすべてのバージョンを一覧表示するには、次のいずれかの方法を使用します。
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、[リージョン シークレット] タブをクリックします。
-
シークレットをクリックして、そのバージョンにアクセスします。
シークレットに属するバージョンが [バージョン] テーブルに表示されます。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- SECRET_ID: シークレットの ID またはシークレットの完全修飾識別子。
- LOCATION: シークレットの Google Cloud ロケーション
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud secrets versions list SECRET_ID --location=LOCATION
Windows(PowerShell)
gcloud secrets versions list SECRET_ID --location=LOCATION
Windows(cmd.exe)
gcloud secrets versions list SECRET_ID --location=LOCATION
レスポンスにはシークレットが含まれます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: シークレットの Google Cloud ロケーション
- PROJECT_ID: Google Cloud プロジェクト ID
- SECRET_ID: シークレットの ID またはシークレットの完全修飾識別子
HTTP メソッドと URL:
GET https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions
リクエストの本文(JSON):
{}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X GET \
-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/SECRET_ID/versions"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-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/SECRET_ID/versions" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "versions": [ { "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "ENABLED", "etag": "\"1621457b3c1459\"" } ], "totalSize": 1 }
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 スコープを使用して認証する必要があります。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
シークレット バージョンの詳細を取得する
このプロセスでは、バージョン ID、作成日時、暗号化の詳細、ステータスなど、シークレット バージョンのメタデータを表示できます。シークレット バージョンのメタデータを表示すると、シークレット バージョンに関する情報にアクセスできますが、実際のシークレット値自体にはアクセスできません。シークレット値を表示するには、リージョン シークレット バージョンにアクセスするをご覧ください。
シークレット バージョンのメタデータを表示するには、次のいずれかの方法を使用します。
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、[リージョン シークレット] タブをクリックします。
-
シークレットをクリックして、そのバージョンにアクセスします。
シークレットに属するバージョンが [バージョン] テーブルに表示されます。バージョンごとに、バージョン ID とそのメタデータもテーブルに表示されます。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- VERSION_ID: シークレットのバージョンの ID
- SECRET_ID: シークレットの ID またはシークレットの完全修飾識別子。
- LOCATION: シークレットの Google Cloud ロケーション
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows(PowerShell)
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows(cmd.exe)
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID --location=LOCATION
レスポンスにはシークレットが含まれます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: シークレットの Google Cloud ロケーション
- PROJECT_ID: Google Cloud プロジェクト ID
- SECRET_ID: シークレットの ID またはシークレットの完全修飾識別子
- VERSION_ID: シークレットのバージョンの ID
HTTP メソッドと URL:
GET https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID
リクエストの本文(JSON):
{}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X GET \
-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/SECRET_ID/versions/VERSION_ID"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-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/SECRET_ID/versions/VERSION_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "ENABLED", "etag": "\"1621457b3c1459\"" }
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 スコープを使用して認証する必要があります。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。