シークレットのデータは不変であり、ほとんどの操作はシークレットのバージョンに対して行われます。シークレット バージョンには、実際のシークレット データとともに、シークレットに関する状態とメタデータが含まれます。このトピックでは、シークレット バージョンを追加する方法について説明します。
必要なロール
シークレット バージョンを追加するために必要な権限を取得するには、シークレットに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Secret Manager のシークレット バージョンの追加(
roles/secretmanager.secretVersionAdder
) - Secret Manager のシークレット バージョン マネージャー(
roles/secretmanager.secretVersionManager
)
ロールの付与の詳細については、アクセスの管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
シークレット バージョンを追加する
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、[さらに表示
] をクリックして [新しいバージョンを追加] を選択します。 -
[新しいバージョンを追加] ダイアログの [シークレット値] フィールドに、シークレットの値を入力します(例:
abcd1234
)。 -
[新しいバージョンを追加] ボタンをクリックします。
gcloud
Secret Manager をコマンドラインで使用するには、まず Google Cloud CLI のバージョン 378.0.0 以降をインストールまたはアップグレードします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
ディスク上のファイルのコンテンツからシークレット バージョンを追加します。
$ gcloud secrets versions add secret-id --data-file="/path/to/file.txt"
シークレット バージョンは、コマンドラインに直接追加することもできますが、プロセスのリストで平文として表示され、他のシステム ユーザーがキャプチャする可能性があるため、この方法はおすすめできません。平文のコマンドもシェル履歴に含まれることに注意してください。
$ echo -n "this is my super secret data" | \
gcloud secrets versions add secret-id --data-file=-
省略可: シークレットを最初に作成するときに、ファイルのコンテンツからバージョンを追加します。
$ gcloud secrets create secret-id --data-file="/path/to/file.txt"
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 スコープを使用して認証する必要があります。
API
次の例では、API の使用を示すために curl を使用します。gcloud auth print-access-token を使用してアクセス トークンを生成できます。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
シークレット データを Base64 エンコードし、シェル変数として保存します。
$ SECRET_DATA=$(echo "seCr3t" | base64)
curl を使用して API を呼び出します。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:addVersion" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"payload\": {\"data\": \"${SECRET_DATA}\"}}"
シークレット バージョンの状態
シークレット バージョンは任意の時点で次のいずれかの状態になります。
有効 - この状態では、シークレット バージョンにアクセスして記述できます。これは新しいシークレット バージョンのデフォルトの状態です。
無効 - この状態では、シークレット バージョンにアクセスできませんが、シークレットのコンテンツはまだ存在します。シークレット バージョンは、再度有効にして復元できます。
破棄 - この状態では、シークレット バージョンの内容は破棄されています。シークレット バージョンを別の状態に変更することはできません。
次のステップ
- シークレット バージョンにアクセスする方法を学習する。
- シークレット バージョンにエイリアスを割り当てる方法を学習する。
- シークレット バージョンを一覧表示し、バージョンの詳細を表示する方法を学習する。