👉
AWS Secrets Manager emulatorを使う手順
このエントリでは、
AWSのSecretsManagerから情報を取得するアプリケーションを、
ローカルPCで開発する際に便利な、
AWS Secrets Manager emulatorの使い方手順をまとめています。
AWS Secrets Manager emulator
AWS Secrets Manager emulatorの起動から、
Pythonのアプリケーションから情報を取得するまでの流れを記載します。
AWS Secrets Manager emulatorの起動
Dockerを使わない版
Node.jsの環境が必要です、
Nodeのversionは16.13.1以上17未満である必要があります。
nodenv使っているなら、次のような感じで準備します。
nodenv install 16.20.1
nodenv local 16.20.1
npm install -g yarn
Nodeの環境が準備できたら、ダウンロードと依存ライブラリのインストールをします。
wget https://github.com/skarpdev/hapi-aws-secrets-manager-emulator/archive/refs/tags/v0.4.1.tar.gz
tar zxf v0.4.1.tar.gz
cd hapi-aws-secrets-manager-emulator-0.4.1
yarn install
秘匿情報を準備します。
mkdir secrets
echo '{"key": "secret"}' > secrets/mysecret
emulatorを起動します。
export SECRETS_MANAGER_PRELOAD_DIRECTORY=$(pwd)/secrets
yarn start
Dockerを使う(docker compose)版
秘匿情報を準備します。
mkdir secrets-manager-secrets
echo '{"key": "secret"}' > secrets-manager-secrets/mysecret
docker-compose.yamlファイルを準備します。
docker-compose.yaml
version: '3'
services:
secretsmanager:
image: skarpdev/aws-secrets-manager-emulator:0.1.0
volumes:
- ./secrets-manager-secrets:/secrets
ports:
- 3000:3000
起動します。
docker compose up
Pythonのアプリケーションからの情報取得
アプリケーションを用意します。
main.py
import boto3
import json
# 秘匿情報を取得
client = boto3.client('secretsmanager')
response = client.get_secret_value(SecretId="mysecret")
secret_obj = json.loads(response["SecretString"])
print(secret_obj)
アプリケーションを実行して秘匿情報を取得できているか確認します。
export AWS_ENDPOINT_URL_SECRETS_MANAGER=http://localhost:3000
export AWS_ACCESS_KEY_ID=dummy
export AWS_SECRET_ACCESS_KEY=dummy
export AWS_DEFAULT_REGION=dummy
python main.py
環境変数AWS_ENDPOINT_URL_SECRETS_MANAGERで、
接続するSecretsManagerをローカルのemulatorに変更するのが肝ですね。
以上。
Discussion