このページでは、シークレット バージョンを破棄する方法について説明します。破棄された状態では、シークレット バージョンの内容は破棄されます。シークレット バージョンを破棄すると、元に戻すことはできません。バージョンが破棄された後は、シークレット データにアクセスしたり、バージョンを別の状態に復元したりすることはできません。
シークレット バージョンを破棄する前に、まず無効にしてからアプリケーションの動作を確認してください。予期しない問題が発生した場合は、シークレット バージョンを再度有効にできます。
シークレットやシークレット バージョンを無効化または破棄する際、変更がシステム全体に反映されるまでに時間がかかります。必要に応じて、シークレットへの アクセス権を取り消すことができます。IAM 権限の変更の整合性は、数秒以内に確保されます。
必要なロール
シークレット バージョンを破棄するために必要な権限を取得するには、シークレットに対する Secret Manager のシークレット バージョン マネージャー(roles/secretmanager.secretVersionManager
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
シークレット バージョンの破棄
シークレット バージョンを破棄するには、次のいずれかの方法を使用します。
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、シークレットをクリックしてバージョンにアクセスします。
-
[シークレットの詳細] ページの [バージョン] タブで、破棄するシークレット バージョンを選択します。
-
[
アクション] をクリックし、[破棄] をクリックします。 -
表示される確認ダイアログで、シークレット ID を入力して確定し、[選択したバージョンを破棄する] をクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- VERSION_ID: シークレット バージョンのリソース名
- SECRET_ID: シークレットの ID またはシークレットの完全修飾識別子
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID
Windows(PowerShell)
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID
Windows(cmd.exe)
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクト ID
- SECRET_ID: シークレットの ID またはシークレットの完全修飾識別子
- VERSION_ID: シークレットのバージョンの ID
HTTP メソッドと URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:destroy
リクエストの本文(JSON):
{}
リクエストを送信するには、次のいずれかのオプションを選択します。
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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:destroy"
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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:destroy" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-02T07:16:34.566706Z", "destroyTime": "2024-09-04T06:29:01.893743728Z", "state": "DESTROYED", "etag": "\"1621454a37ce7f\"" }
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 スコープを使用して認証する必要があります。
シークレット バージョンの破棄の遅延
Secret Manager 管理者は、シークレットでシークレット バージョンの破棄を遅らせる機能を構成することで、シークレット バージョンの破棄の遅延を設定できます。この機能が有効になっている場合、シークレット バージョンはリクエストされてもすぐには破棄されません。代わりに、シークレット バージョンは無効になり、後日破棄されるようにスケジュールされます。この間、Secret Manager 管理者はシークレット バージョンを復元できます。
次のステップ
- データの整合性を確保する方法を学習する。
- ベスト プラクティスについて確認する。