Skip to content

docs(spec): 設計規約 §5.4 と infrastructure-plan §3.5 の secrets 方針整合(RDS IAM 認証 / Parameter Store) #250

Description

@win2cot

背景

機密情報(特に DB password)の保管方針について、設計規約と infrastructure-plan で記述が不整合:

設計規約 §5.4

機密情報(DB パスワード等)は AWS Secrets Manager で管理し、application.yml直書きしない

infrastructure-plan §3.4 / §3.5

  • §3.5「RDS 認証(K-A 案、MySQL 8.4)」: tasks-webapi の RDS 接続は IAM 認証(K-A 案)。DB password は使用しない(動的に IAM token を取得)。
  • §3.4「環境変数による設定注入(Spring プロファイル不使用)」: application.ymlpassword は IAM 認証時 空文字。実装 password: ${DATASOURCE_PASSWORD:} で対応済。
  • Keycloak の SMTP password のみ Parameter Store SecureString で管理(S0Infra-7、ADR-0006 派生)。

実態

  • application.ymlpassword: ${DATASOURCE_PASSWORD:} で IAM 認証前提に既に対応済。
  • Secrets Manager / Parameter Store の使い分けは Sprint 0 着手前に整備中(S0Infra-7)。
  • 設計規約 §5.4 だけが旧表現「AWS Secrets Manager」のまま残っている。

2026-05-24 の Sprint 0 N1〜N8 見直しで Issue #89 (N7) を書き換えた際に発見した不整合(sprint0-N1-N8-rewrite-draft.md § 横断追加タスク 案 3)。

やること

設計規約 §5.4「通信・データ保護」の機密情報管理項を、infrastructure-plan §3.4 / §3.5 と整合させる形で書き換える。

書き換え案

### 5.4 通信・データ保護

- HTTPS 必須(TLS 1.3 を優先、最低 1.2)、HSTS 有効。
- DB 接続は SSL/TLS を有効化。RDS は KMS で保存時暗号化。
- 機密情報の管理方針は infrastructure-plan §3.4 / §3.5 に従う:
  - **tasks-webapi の RDS 接続**: IAM 認証(K-A 案、infrastructure-plan §3.5)。DB password は使用せず、`application.yml``password` は空文字注入(`${DATASOURCE_PASSWORD:}`)。
  - **Keycloak の SMTP password 等、IAM 認証で代替できない機密情報**: AWS Systems Manager **Parameter Store SecureString** で管理(infrastructure-plan §3.4、S0Infra-7、ADR-0006 派生)。
  - **AWS Secrets Manager は本プロジェクトでは未採用**(Parameter Store SecureString で同等のセキュリティを実現、運用コスト圧縮)。
  - いずれも `application.yml` への直書きは禁止。ECS Task Definition の `environment` / `secrets` で注入。

影響範囲確認

  • docs/specs/設計規約.md §5.4 の書き換え
  • 他に Secrets Manager 言及が無いか全 docs grep(docs/specs/, docs/architecture/, docs/adr/)
  • 開発計画書 / 基本設計書側に同方針の言及がある場合は同期修正
  • ADR レベルの判断が必要か(Secrets Manager 不採用 → Parameter Store 採用)を検討、必要なら ADR-0011 起票

受入条件

  • 設計規約 §5.4 が infrastructure-plan §3.4 / §3.5 / ADR-0006 / S0Infra-7 と矛盾しない
  • 全 docs に Secrets Manager 旧記述が残っていない
  • doc only のため ./gradlew :webapi:check 不要、CI green
  • S0Infra-7(Parameter Store SecureString パラメータ整備)で本記述を引用できる状態

参照

  • 本 Issue の起票根拠: 2026-05-24 N1〜N8 Issue 見直しレビュー(sprint0-N1-N8-rewrite-draft.md § 横断追加タスク 案 3)
  • 対象 doc: docs/specs/設計規約.md §5.4
  • 整合先 doc: docs/architecture/infrastructure-plan.md §3.4 / §3.5
  • 関連 Issue: S0Infra-7(Parameter Store パラメータ整備)/ chore: application.yml に DataSource / Flyway / OAuth2 issuer 設定追加 (N7) #89 (N7、application.yml 整備)
  • 関連 ADR: ADR-0006(Keycloak User Storage SPI、SMTP password 由来)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/docsdocs/ 配下のドキュメント(設計書・規約・ADR 等)変更area/security認証・認可 / NIST 準拠 / セキュリティ設定変更priority/p1High。現スプリント内で完了必須

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions