コンテンツにスキップ

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 を使う。