Secret Manager を使用してシークレットを作成してアクセスする
Google Cloud で Secret Manager を使用してシークレットを作成し、アクセスする方法について説明します。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
- プロジェクトごとに 1 回、Secret Manager API を有効にします。
- プロジェクト、フォルダ、または組織に対する Secret Manager 管理者ロール(
roles/secretmanager.admin
)を割り当てます。 次のいずれかの方法で Secret Manager API に対する認証を行います。
- クライアント ライブラリを使用して Secret Manager API にアクセスする場合は、アプリケーションのデフォルト認証情報を設定します。
- Google Cloud CLI を使用して Secret Manager API にアクセスする場合は、Google Cloud CLI 認証情報を使用して認証します。
- REST 呼び出しを認証するには、Google Cloud CLI 認証情報またはアプリケーションのデフォルト認証情報のいずれかを使用します。
シークレットを作成し、シークレット バージョンにアクセスします。
次の例は、シークレットの作成とシークレット バージョンのコンテンツへのアクセスを示しています。
Console
Secret とシークレット バージョンを作成するには:
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[シークレット マネージャー] ページで、[シークレットを作成] をクリックします。
-
[シークレットの作成] ページの [名前] に「
my-secret
」と入力します。 -
[シークレット値] フィールドに「
my super secret data
」と入力します。 -
[シークレットを作成] ボタンをクリックします。
シークレット バージョンのコンテンツにアクセスするには:
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[Secret Manager] ページで、[my-secret] をクリックします。
-
[シークレットの詳細] ページの [バージョン] テーブルで、バージョン 1 を見つけます。
-
[アクション] 列で、[
の詳細] をクリックします。 -
メニューから [シークレット値の表示] をクリックします。
-
シークレット値を示すダイアログが表示されます。[完了] をクリックしてダイアログを閉じます。
gcloud
Secret Manager をコマンドラインで使用するには、まず Google Cloud CLI のバージョン 378.0.0 以降をインストールまたはアップグレードします。 Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
シークレットを作成し、最初のシークレット バージョンのコンテンツとして文字列を保存するには:
$ echo -n "my super secret data" | gcloud secrets create my-secret \
--replication-policy="replication-policy" \
--data-file=-
replication-policy は、automatic
または user-managed
のいずれかです。
特定のシークレット バージョンのコンテンツにアクセスするには:
$ gcloud secrets versions access 1 --secret="my-secret"
最新のシークレット バージョンのコンテンツにアクセスするには:
$ gcloud secrets versions access latest --secret="my-secret"
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 スコープを使用して認証する必要があります。
シークレットを作成し、最初のシークレット バージョンのコンテンツとして文字列を保存するには:
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets?secretId=my-secret" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"replication\": {\"automatic\": {}}}"
シークレット バージョンのコンテンツにアクセスするには:
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/my-secret/versions/1:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json"
次のステップ
- シークレットの編集について学習する。
- シークレットへのアクセス管理に関する詳細。
- シークレット バージョンへのエイリアスの割り当てについて学習する。
- シークレットの通知の設定について学習する。
- 次のベスト プラクティスを確認する。