• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

gcp secret manager

date: 2023-03-30 excerpt: gcp secret managerの使い方

tag: secret managergcpapi


gcp secret managerの使い方

概要

  • gcp上にシークレットを補完するもの
  • クレデンシャルを共有せずに済むので便利
  • シークレットという粒度の中に、バージョンが有り、バージョンに秘密の文章が記されている
  • 使用するには事前にsecret managerのAPIが有効化されている必要がある

インストール

$ python3 -m pip install google-cloud-secret-manager

具体例

シークレットを作成する

$ gcloud secrets create <secret-id> --replication-policy="automatic"

シークレットにバージョンを追加する

ファイルから

$ 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=-

CUIでシークレットのバージョンにアクセスする

cui

$ gcloud secrets versions access <version-id> --secret=<secret-id>

python

from google.cloud import secretmanager

project_id = "starry-lattice-256603"
secret_id  = "test-secret-id"
version_id = "latest"

client = secretmanager.SecretManagerServiceClient()
name = f"projects/{project_id}/secrets/{secret_id}/versions/{version_id}"
response = client.access_secret_version(request={"name": name})
payload = response.payload.data.decode("UTF-8")
print(payload)

"""
this is my super secret data
"""

notebookからシークレットのバージョンにアクセスする

from typing import Dict, List

from google.cloud import secretmanager
from google.colab import auth

auth.authenticate_user()

def get_secret(
    secret_name: str,
    project_id: str = "starry-lattice-256603",
    version: str = "latest",
) -> str:
    client = secretmanager.SecretManagerServiceClient()
    name = client.secret_version_path(project_id, secret_name, version)
    response = client.access_secret_version(request={"name": name})
    payload = response.payload.data.decode("UTF-8")
    return payload

print(get_secret("test-secret-id"))
"""
this is my super secret data
"""

参考

  • Secret Manager のコンセプトの概要/cloud.google.com


secret managergcpapi Share Tweet