GCPのSecret Managerを試した
背景
Google Cloud Secret Manager のご紹介 で新機能※ベータの公開を知りました。
従来は都度KMSで復号したりするのが辛かったので
簡単に扱えるようになったら嬉しいと思って試用してみました。
やったこと
下準備
基本的にはサービスからアクセスさせる想定なので、今回はサービスアカウントを作成しました。
「Secret Manager のシークレット アクセサー」の権限をつけておきます。
参考: シークレット マネージャーの役割
サービスアカウントの発行時にjsonでキーを発行し、読み込んでおきます。
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service_account_key.json"
シークレットの作成
シークレットの取得
サンプルコードを参考に、node.jsのスクリプトから取得します。
$ mkdir secret-manager-test
$ cd secret-manager-test
$ npm init -y
$ npm install @google-cloud/secret-manager
$ touch index.js
const {SecretManagerServiceClient} = require('@google-cloud/secret-manager');
const client = new SecretManagerServiceClient();
async function accessSecretVersion() {
const [version] = await client.accessSecretVersion({
// バージョンは'latest'で最新バージョンを参照することも可能
name: 'projects/{my-project}/secrets/TEST_API_KEY/versions/1',
});
const payload = version.payload.data.toString('utf8');
console.info(`Payload: ${payload}`);
}
accessSecretVersion();
実行するとシークレット作成時に定義した値が表示されます。
$ node index.js
Payload: this is secret key
解決できず
現状は「Secret Manager のシークレット アクセサー」を無条件で付与しているため
プロジェクト内で定義されているすべてのシークレットにアクセスできてしまいます。
権限付与時に条件を絞ることもできますが、うまく設定することができず…。
まとめ
簡単に使うことはできましたが
このままではセキュリティ上本番では使い難いので、もう少し検証が必要です。
Author And Source
この問題について(GCPのSecret Managerを試した), 我々は、より多くの情報をここで見つけました https://qiita.com/nanakenashi/items/225ef1344d5b6889913a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .