niainalens.gcp_secret_manager

メンテナンス中

GCP シークレットマネージャーの ANSIBLE ROLE

GCP シークレットマネージャーからシークレットを取得し、指定したファイルに保存します。

要件

  • 正しいプロジェクトの GCP アカウントに認証済みであること
  • GCP シークレットマネージャーにシークレットが存在すること
  • API を有効にすること:

シークレットマネージャー (secretmanager.googleapis.com)

$ gcloud services list --available | grep Secret
secretmanager.googleapis.com
$ gcloud services enable secretmanager.googleapis.com

ロール変数

# "gcp_secrets" 変数は辞書として定義する必要があります

gcp_secrets:
  SECRET_NAME_1: # 任意の名前を付けてください('name' と同じでもかまいません)
    name: SECRET_NAME_1 # GCP シークレットマネージャーでの正確な名前
    file_path: "/PATH/TO/TARGET_FILE/SECRET_NAME"
    file_owner: USER # シークレットを管理するユーザー(例:root)
    file_group: USER # 指定しない場合、デフォルトは "file_owner"
    file_mode: '0400' # 安全に保つために
  SECRET_NAME_2:
    name: SECRET_NAME_2
    file_path: "/PATH/TO/TARGET_FILE/SECRET_NAME"
    file_owner: USER
    file_mode: '0644'
  SECRET_NAME_N:
    name: SECRET_NAME_N
    file_path: "/PATH/TO/TARGET_FILE/SECRET_NAME"
    file_owner: USER
    file_mode: '0600'

依存関係

なし。

例 Playbook

- hosts: web-servers
  vars:
    gcp_secrets:
      database:
        name: MYSQL_PASSWORD
        file_path: "/srv/mysql_pwd"
        file_owner: root
        file_group: root
        file_mode: '0400'
      nexus:
        name: NEXUS_PASSWORD
        file_path: "/srv/nexus_pwd"
        file_owner: root
        file_mode: '0400'
  roles:
    - gcp_secret_manager

改善点

  • シークレットの管理: 追加、編集、削除
  • シークレットのプロパティ(バージョン、レプリケーション、場所、ラベル、IAM)の編集

ライセンス

Apache

著者情報

作成者: Niaina Lens
2022年9月

プロジェクトについて

Ansible role for GCP Secret Manager

インストール
ansible-galaxy install niainalens.gcp_secret_manager
ライセンス
apache-2.0
ダウンロード
2.3k
所有者
Lead DevOps Advocate | Cloud | SRE