シークレットを編集する

このページでは、シークレットのメタデータを編集する方法について説明します。暗号化タイプ、ローテーション ポリシー、有効期限、ラベル、イベント通知など、シークレットの多くのプロパティを更新できます。アノテーションを追加して、シークレット バージョンのエイリアスを設定することもできます。シークレットの名前または値とレプリケーション ポリシーを編集することはできません。シークレットに新しい値を追加するには、新しいシークレット バージョンを作成する必要があります。

必要なロール

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

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

シークレットを編集する

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

コンソール

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

    Secret Manager に移動

  2. シークレットを編集するには、次のいずれかのオプションを使用します。

    • リストでシークレットを見つけて、そのシークレットに関連付けられている [操作] メニューをクリックします。[操作] メニューで [編集] をクリックします。

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

  3. [シークレットを編集] ページで、必要に応じてシークレットのプロパティを更新し、[シークレットを更新] をクリックします。

gcloud

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

  • SECRET_ID: シークレットの ID
  • KEY:ラベルキー。
  • VALUE: ラベルの対応する値

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

Linux、macOS、Cloud Shell

gcloud secrets update SECRET_ID \
    --update-labels=KEY=VALUE

Windows(PowerShell)

gcloud secrets update SECRET_ID `
    --update-labels=KEY=VALUE

Windows(cmd.exe)

gcloud secrets update SECRET_ID ^
    --update-labels=KEY=VALUE

レスポンスで、更新されたシークレットが返されます。

REST

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

  • PROJECT_ID: Google Cloud プロジェクト ID
  • SECRET_ID: シークレットの ID
  • KEY:ラベルキー。
  • VALUE: ラベルの対応する値

HTTP メソッドと URL:

PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=labels

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

{'labels': {'KEY': 'VAL'}}

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

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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=labels"

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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=labels" | Select-Object -Expand Content

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

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-02T07:14:00.281541Z",
  "labels": {
    "key": "value"
  },
  "etag": "\"16211dc7d040b1\""
}

C#

このコードを実行するには、まず C# 開発環境を設定し、Secret Manager C# SDK をインストールします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。