前提
担当プロジェクトのシークレット情報をGCPシークレットマネージャーで管理することになりました。
最終的にはCI/CDを任してるCircle CIからシークレットマネージャーにアクセスして値を取得するようにしますが、その前段として自分のローカル環境から値を取得できるか確認します。
1. ローカルにGoogle Cloud SDKをインストールする
こちらの記事(メモ Google Cloud SDKをHomebrewを使ってMacにインストールした時のメモ - Qiita)の通りでうまくいきましたので、適宜引用しながら作業を追ってきます。
- brew cask install google-cloud-sdk する.
この通りにコマンドを実行する。
brew cask install google-cloud-sdk
gcloudとgsutilがインストールされる。
次はパスを通す。自分の場合は.zshprofile
。
brew cask infoで出る下記のような注意書きの通りに .profile や .bashrc や .zshrc などの適切なところに指定のスクリプトを実行する2行をいれる. これをしないとパスが通らない.
# 末尾に追加
source /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc
source /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc
ターミナルを再起動して、以下のコマンドを実行する。
gcloud -v
# バージョン返ってきたらok
gsutil -v
# バージョン返ってきたらok
これでインストール完了。
2. gcloud初期化
こちらの記事(macOS 用のクイックスタート | Cloud SDK のドキュメント | Google Cloud)の通りで間違いないです。
3. シークレットの取得
自分のアカウントにシークレットマネージャーへのアクセス権限が付与されてれば、以下のコマンドでシークレットの値を取得できる。
# 設定してるシークレットの一覧を取得
gcloud secrets list
# シークレットの値を取得
gcloud secrets versions access latest --secret=“シークレット名”
# 任意のバージョンの値を取得する(上記コマンドのlatestを任意のバージョンに書き換える)
gcloud secrets versions access 1 --secret=“シークレット名”
おわりに
本当はローカルじゃなくてコンテナ作るのがいいんだろうな。