リージョン シークレット バージョンの破棄を遅延させる

このページでは、シークレット バージョンの破棄の遅延の設定、破棄の遅延期間の更新または削除、破棄がスケジュールされているシークレット バージョンの復元の方法について説明します。

デフォルトでは、ユーザーが Secret Manager でシークレット バージョンの破棄を選択すると、シークレット マテリアルは即時かつ完全に破棄されます。ただし、Secret Manager 管理者のロールを持つユーザーは、シークレット バージョンの破棄を遅らせることができます。これにより、シークレット バージョンはリクエストされるとすぐに破棄されず、構成可能な期間は復元可能になります。

シークレットで破棄の遅延が有効になっている場合、シークレット バージョンを破棄すると、次のようになります。

  • バージョンが無効になっているため、使用できません。

  • システムは、遅延期間の終了時にバージョンを完全に破棄するようにスケジュールします。

  • 遅延期間が終了すると、シークレット バージョンは完全に破棄され、復元できなくなります。

利点

この機能には、次の利点があります。

  • 重要な機密情報の偶発的または悪意のある破壊に対する追加の保護レイヤ。Secret Manager シークレット バージョン マネージャーのロールを持つユーザーは、シークレット バージョンを破棄できます。この操作は元に戻せません。破棄の遅延を設定することで、シークレット バージョンが即座に破棄されることを防止できます。センシティブ データの偶発的な破棄をモニタリングし、防止できるため、シークレット バージョンのライフサイクルを管理するために必要な最小限のアクセス権をユーザーに付与できます。

  • シークレット バージョンを破棄すると、シークレットで構成された Pub/Sub トピックに SECRET_VERSION_DESTROY_SCHEDULED 通知がトリガーされます。Secret Manager 管理者ロールを持つユーザーは、シークレット バージョンを有効または無効にすることで、スケジュールされた破棄をキャンセルし、シークレット バージョンを復元できます。

始める前に

  1. Enable the Secret Manager API.

    Enable the API

  2. 認証を設定する。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

必要なロール

シークレット バージョンの破棄を設定するために必要な権限を取得するには、シークレットに対する Secret Manager 管理者 roles/secretmanager.admin)IAM ロールを付与するように管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

破棄の遅延を設定する

シークレット バージョンの破棄の遅延は、シークレットを作成するとき、またはシークレットを更新するときに有効にできます。遅延削除を設定するには、次のいずれかの方法を使用します。

Console

  1. Google Cloud コンソールの [Secret Manager] ページに移動します。

    Secret Manager に移動

  2. [Secret Manager] ページで、[リージョン シークレット] タブをクリックし、[リージョン シークレットを作成] をクリックします。

  3. [リージョン シークレットの作成] ページの [名前] フィールドに、シークレットの名前を入力します。

  4. シークレットの値を入力します(例: abcd1234)。[ファイルをアップロード] オプションを使用して、シークレット値を含むテキスト ファイルをアップロードすることもできます。この操作により、シークレット バージョンが自動的に作成されます。

  5. [リージョン] リストから、リージョン シークレットを保存する場所を選択します。

  6. [シークレット バージョンの破棄を遅延させる] に移動し、[破棄の遅延期間を設定する] チェックボックスをオンにします。

  7. [破棄の遅延期間] フィールドに、期間を日数で入力します。入力できる最小値は 1 日、最大値は 1,000 日です。

  8. [シークレットの作成] をクリックします。

    既存のシークレットでこの機能を有効にするには、[シークレットを編集] ページに移動し、破棄の遅延期間を構成します。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • SECRET_ID: Secret の ID または Secret の完全修飾識別子。
  • LOCATION: シークレットの Google Cloud ロケーション
  • TTL_DURATION: シークレット バージョンの破棄の遅延時間。期間は、日数、時間、秒などの形式で入力できます。必要な最小期間は 1 日ですが、最大期間を 1,000 日に設定できます。

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud secrets create SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION

Windows(PowerShell)

gcloud secrets create SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION

Windows(cmd.exe)

gcloud secrets create SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION

レスポンスには、新しく作成されたシークレットが含まれます。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: シークレットの Google Cloud ロケーション
  • PROJECT_ID: Google Cloud プロジェクト ID。
  • SECRET_ID: Secret の ID または Secret の完全修飾識別子。
  • TTL_DURATION: シークレット バージョンの破棄の遅延時間。期間を秒単位で入力します。必要な最小期間は 1 日ですが、最大期間を 1,000 日に設定できます。

HTTP メソッドと URL:

POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID

リクエストの本文(JSON):

{
  "version_destroy_ttl":"TTL_DURATION"
}

リクエストを送信するには、次のいずれかのオプションを選択します。

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

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T06:34:32.995517Z",
  "etag": "\"1621455df3febd\"",
  "versionDestroyTtl": "TTL_DURATION"
}

破棄の遅延は、以下のシナリオには適用されません。

  • シークレットが削除されると、すべてのシークレット マテリアル、関連するシークレット バージョンが直ちに削除されます。

  • シークレットに有効期限が設定され、シークレットが期限切れになると、シークレットで破棄の遅延が有効になっていても、すべてのシークレット バージョンが直ちに破棄されます。

破棄の遅延期間を更新する

破棄遅延時間を更新するには、次のいずれかの方法を使用します。

Console

  1. Google Cloud コンソールの [Secret Manager] ページに移動します。

    Secret Manager に移動

  2. [Secret Manager] ページで、[リージョン シークレット] タブをクリックします。

  3. シークレットを編集するには、次のいずれかの方法を使用します。

    • 編集するシークレットの [アクション] をクリックし、[編集] をクリックします。

    • シークレット名をクリックして、シークレットの詳細ページに移動します。シークレットの詳細ページで、[シークレットを編集する] をクリックします。

  4. [シークレットを編集する] ページで、[シークレット バージョンの破棄を遅延させる] セクションに移動します。必要に応じて遅延時間を更新し、[シークレットを更新] をクリックします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • SECRET_ID: Secret の ID または Secret の完全修飾識別子
  • LOCATION: シークレットの Google Cloud ロケーション
  • TTL_DURATION: シークレット バージョンの破棄の遅延時間

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION

Windows(PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION

Windows(cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION

レスポンスには、新しく作成されたシークレットが含まれます。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: シークレットの Google Cloud ロケーション
  • PROJECT_ID: Google Cloud プロジェクト ID
  • SECRET_ID: Secret の ID または Secret の完全修飾識別子
  • TTL_DURATION: シークレット バージョンの破棄の遅延時間

HTTP メソッドと URL:

PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=version_destroy_ttl

リクエストの本文(JSON):

{
  "version_destroy_ttl":"TTL_DURATION"
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X PATCH \
-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?updateMask=version_destroy_ttl"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=version_destroy_ttl" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T06:34:32.995517Z",
  "etag": "\"16214561a80d09\"",
  "versionDestroyTtl": "TTL_DURATION"
}

破棄の遅延時間の影響を受けるシークレット バージョンは、次の要素によって異なります。

  • シークレットに破棄の遅延が初めて設定された場合、破棄の遅延時間は、シークレットのアクティブな(有効と無効の)すべてのバージョンに影響します。

  • 破棄の遅延期間を更新または削除すると、変更は破棄のアクションが試行された新しいシークレット バージョンにのみ反映されます。Secret のバージョンがすでに破棄のスケジュールされている場合は、破棄のスケジュールされた時間に破棄されます。

破棄の遅延を無効にする

バージョンの遅延破棄を無効にするには、次のいずれかの方法を使用します。

Console

  1. Google Cloud コンソールの [Secret Manager] ページに移動します。

    Secret Manager に移動

  2. [Secret Manager] ページで、[リージョン シークレット] タブをクリックします。

  3. シークレットを編集するには、次のいずれかの方法を使用します。

    • 編集するシークレットの [アクション] をクリックし、[編集] をクリックします。

    • シークレット名をクリックして、シークレットの詳細ページに移動します。シークレットの詳細ページで、[シークレットを編集する] をクリックします。

  4. [シークレットを編集する] ページで、[シークレット バージョンの破棄を遅延させる] に移動します。[破棄の遅延期間を設定する] チェックボックスをオフにして、[シークレットを更新] をクリックします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • SECRET_ID: Secret の ID または Secret の完全修飾識別子
  • LOCATION: シークレットの Google Cloud ロケーション

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION --remove-version-destroy-ttl

Windows(PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION --remove-version-destroy-ttl

Windows(cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION --remove-version-destroy-ttl

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: シークレットの Google Cloud ロケーション
  • PROJECT_ID: Google Cloud プロジェクト ID
  • SECRET_ID: Secret の ID または Secret の完全修飾識別子

HTTP メソッドと URL:

PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=version_destroy_ttl

リクエストの本文(JSON):

{}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X PATCH \
-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?updateMask=version_destroy_ttl"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=version_destroy_ttl" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T06:34:32.995517Z",
  "etag": "\"16214564f18f19\""
}

シークレット バージョンの破棄を遅らせるスケジュールを設定する

シークレット バージョンの破棄を遅らせるスケジュールを設定するには、次のいずれかの方法を使用します。

Console

  1. Google Cloud コンソールの [Secret Manager] ページに移動します。

    Secret Manager に移動

  2. [Secret Manager] ページで [リージョン シークレット] タブをクリックし、シークレットをクリックしてバージョンにアクセスします。バージョンの破棄の遅延は、このシークレットで構成する必要があります。

  3. シークレットの詳細ページの [バージョン] タブで、破棄するシークレット バージョンを選択します。

  4. [アクション]、[破棄] の順にクリックします。

  5. 表示された確認ダイアログで、シークレット ID を入力して確認し、[選択したバージョンの破棄をスケジュールする] をクリックします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • SECRET_VERSION_ID: バージョンの ID または完全修飾識別子
  • SECRET_ID: Secret の ID または Secret の完全修飾識別子
  • LOCATION: シークレットの Google Cloud ロケーション

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION

Windows(PowerShell)

gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION

Windows(cmd.exe)

gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: シークレットの Google Cloud ロケーション
  • PROJECT_ID: Google Cloud プロジェクト ID
  • SECRET_ID: Secret の ID または Secret の完全修飾識別子
  • VERSION_ID: バージョンの ID または完全修飾識別子

HTTP メソッドと URL:

POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:destroy" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID",
  "createTime": "2024-09-04T06:41:57.859674Z",
  "state": "DISABLED",
  "etag": "\"16214579184a2c\"",
  "scheduledDestroyTime": "2024-09-05T13:15:28.357251843Z"
}

シークレット バージョンは直ちに無効になり、破棄の遅延期間が終了すると破棄がスケジュールされます。バージョンの正確な破棄日時は、[バージョン] テーブルの [破棄予定日時] 列で確認できます。

Secret バージョンを復元する

破棄がスケジュールされているシークレット バージョンは、シークレット バージョンを有効または無効にすることで復元できます。

破棄がスケジュール設定されているシークレット バージョンを有効にする

破棄がスケジュールされているシークレット バージョンを有効にするには、次のいずれかの方法を使用します。

Console

  1. Google Cloud コンソールの [Secret Manager] ページに移動します。

    Secret Manager に移動

  2. [Secret Manager] ページで、[リージョン シークレット] タブをクリックし、シークレットをクリックしてバージョンにアクセスします。

  3. シークレットの詳細ページの [バージョン] タブで、破棄がスケジュールされているシークレット バージョンを選択します。

  4. [アクション] をクリックし、[有効にする] をクリックします。

  5. 表示される確認ダイアログで、[選択したバージョンの有効化] をクリックします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • SECRET_VERSION_ID: バージョンの ID または完全修飾識別子
  • SECRET_ID: Secret の ID または Secret の完全修飾識別子
  • LOCATION: シークレットの Google Cloud ロケーション

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION

Windows(PowerShell)

gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION

Windows(cmd.exe)

gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: シークレットの Google Cloud ロケーション
  • PROJECT_ID: Google Cloud プロジェクト ID
  • SECRET_ID: Secret の ID または Secret の完全修飾識別子
  • VERSION_ID: バージョンの ID または完全修飾識別子

HTTP メソッドと URL:

POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:enable

リクエストの本文(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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:enable"

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/SECRET_ID/versions/VERSION_ID:enable" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID",
  "createTime": "2024-09-04T06:41:57.859674Z",
  "state": "ENABLED",
  "etag": "\"1621457b3c1459\""
}

破棄がスケジュール設定されているシークレット バージョンを無効にする

破棄がスケジュールされている Secret バージョンを無効にするには、次のいずれかの方法を使用します。

Console

  1. Google Cloud コンソールの [Secret Manager] ページに移動します。

    Secret Manager に移動

  2. [Secret Manager] ページで、[リージョン シークレット] タブをクリックし、シークレットをクリックしてバージョンにアクセスします。

  3. シークレットの詳細ページの [バージョン] タブで、破棄がスケジュールされているシークレット バージョンを選択します。

  4. [アクション]、[無効にする] の順にクリックします。

  5. 表示される確認ダイアログで、[選択したバージョンを無効にする] をクリックします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • SECRET_VERSION_ID: バージョンの ID または完全修飾識別子
  • SECRET_ID: Secret の ID または Secret の完全修飾識別子
  • LOCATION: シークレットの Google Cloud ロケーション

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION

Windows(PowerShell)

gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION

Windows(cmd.exe)

gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION

レスポンスには、無効なバージョンのシークレットが含まれます。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: シークレットの Google Cloud ロケーション
  • PROJECT_ID: Google Cloud プロジェクト ID
  • SECRET_ID: Secret の ID または Secret の完全修飾識別子
  • VERSION_ID: バージョンの ID または完全修飾識別子

HTTP メソッドと URL:

POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:disable

リクエストの本文(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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:disable"

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/SECRET_ID/versions/VERSION_ID:disable" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID",
  "createTime": "2024-09-04T06:41:57.859674Z",
  "state": "DISABLED",
  "etag": "\"1621457b3c1459\""
}

次のステップ