AWS Secrets Manager キーテンプレート¶
AWS Secrets Manager で環境変数を管理するための、secret 名設計のテンプレートです。
- Prefix:
b2b-ecommerce - 命名:
b2b-ecommerce/{env}/{service} - SecretString:
{"KEY":"VALUE", ...} - Region:
ap-northeast-1 - 付与タグ:
Environment,Service,Format=env-map
1. SECRETS_CONFIG -> env/service マッピング¶
SECRETS_CONFIG |
env | service | secret name prefix |
|---|---|---|---|
dev |
dev |
shared |
b2b-ecommerce/dev/shared |
ci / ci_shared |
ci |
shared |
b2b-ecommerce/ci/shared |
dev_ci |
ci |
shared |
b2b-ecommerce/ci/shared |
dev_storefront |
dev |
storefront |
b2b-ecommerce/dev/storefront |
dev_vendure |
dev |
vendure |
b2b-ecommerce/dev/vendure |
dev_wp |
dev |
wp |
b2b-ecommerce/dev/wp |
staging / staging_shared |
staging |
shared |
b2b-ecommerce/staging/shared |
staging_storefront |
staging |
storefront |
b2b-ecommerce/staging/storefront |
staging_vendure |
staging |
vendure |
b2b-ecommerce/staging/vendure |
staging_wp |
staging |
wp |
b2b-ecommerce/staging/wp |
prod / production / prod_shared / production_shared |
prod |
shared |
b2b-ecommerce/prod/shared |
prod_storefront |
prod |
storefront |
b2b-ecommerce/prod/storefront |
prod_vendure |
prod |
vendure |
b2b-ecommerce/prod/vendure |
prod_wp |
prod |
wp |
b2b-ecommerce/prod/wp |
prod_infra |
prod |
infra |
b2b-ecommerce/prod/infra |
2. キー投入の基本方針¶
- 環境名(env)は
dev/staging/prod/ciに統一する。 - 旧
stg命名は新規運用で使わない。 .env.exampleをキー一覧の SSOT として維持する。VITE_PUBLIC_*でも中央管理が必要なものは Secrets Manager に投入してよい。- 非機密で運用上変更が多い値(例: URL, CORS)は投入してもよいが、
PORTは除く。 - トークン・パスワード・秘密鍵・DB 接続情報は必ず Secrets Manager に置く。
- shared / service の重複は
node scripts/ops/secrets.mjs --env <env> --services shared,<service> --audit --fail-on-duplicatesで確認する。
3. 1 secret 更新コマンド例¶
aws secretsmanager create-secret \
--region ap-northeast-1 \
--name "b2b-ecommerce/dev/storefront" \
--secret-string '{"VITE_PUBLIC_SITE_URL":"https://example.com"}' \
--tags Key=Environment,Value=dev Key=Service,Value=storefront Key=Format,Value=env-map
既存 secret の更新:
aws secretsmanager update-secret \
--region ap-northeast-1 \
--secret-id "b2b-ecommerce/dev/storefront" \
--secret-string '{"VITE_PUBLIC_SITE_URL":"https://example.com","VITE_PUBLIC_VENDURE_BASE_URL":"https://api.example.com"}'
4. 運用ルール¶
- 新規キー追加時は利用箇所を
rg "<KEY>"で確認する。 PORTなど非機密で一時上書き可能な値は、原則 Secrets Manager に置かない。- 既存の AWS Systems Manager Parameter Store から移行する場合は
scripts/ops/migrate-parameter-store-to-secrets-manager.mjsを使う。