変更要約: SCS-C02 第5章を深掘り(比較表・シナリオ・FAQ・ひっかけ・深掘り段落を各節に追加、図を日本語版に対応)
5.2シークレット管理と転送時の暗号化
資格情報と通信の保護——Secrets Manager(自動ローテーション)、Parameter Store(SecureString)、TLS/ACM、証明書管理——を理解します。秘密と通信を安全に扱います。
データは保存時だけでなく転送時も守ります。秘密は専用サービスで管理し、通信は TLS で暗号化します。
5.2.1シークレットと TLS
- Secrets Manager:DB パスワード/API キーをKMS で暗号化し、自動ローテーションする。
- Parameter Store(SecureString):設定値/軽量な機密を KMS 暗号化で一元管理する。
- TLS:通信を暗号化し、盗聴/改ざんを防ぐ(HTTPS)。
- ACM:公開証明書を発行・自動更新し、ELB/CloudFront/API Gateway に適用する。
「ローテーション必須の機密=Secrets Manager」「設定/軽量機密=Parameter Store(SecureString)」「転送時暗号化=TLS」「証明書の発行/自動更新=ACM」 は SCS-C02 で頻出です。ACM の公開証明書は無料で自動更新され、ELB/CloudFront 等に適用します(EC2 へは直接エクスポート不可)。
SCS-C02 の機密/転送時保護は「秘密を安全に保管・配布・ローテーションし、通信を暗号化する」ことを問います。Secrets Manager は KMS で暗号化して秘密を保管し、自動ローテーション(Lambda)で DB 認証情報等を定期更新、RDS/Redshift/DocumentDB とネイティブ統合します。アプリは API/SDK で取得し、コードに埋め込みません。Parameter Store は設定値や軽量な機密を階層的に管理し、SecureString は KMS 暗号化(標準ティアは無料・ローテーションは要自作)。Secrets Manager から Parameter Store を参照することもできます。転送時暗号化は TLS(HTTPS/相互 TLS)で、証明書は ACM が発行・自動更新し、ELB/CloudFront/API Gateway に適用します(ACM の公開証明書は EC2 へエクスポート不可——EC2 上で終端するなら ACM Private CA や持ち込み証明書)。ACM Private CA で内部用のプライベート証明書階層を運用できます。S3 はバケットポリシーで aws:SecureTransport: false を Deny して HTTP を禁止し、TLS のみを強制するのが定番です。秘密の取り違え対策として、漏洩時は履歴削除でなくローテーション、ログにシークレットを出さない、最小権限で取得を絞る、を徹底します。設計の要は、ローテーション要は Secrets Manager、軽量は Parameter Store、転送時は TLS+ACM(適用先の制約に注意)、S3 は TLS 強制、を正しく選ぶことです。
| 用途 | サービス | 要点 |
|---|---|---|
| ローテーション要の機密 | Secrets Manager | KMS 暗号化・Lambda 自動ローテーション・RDS 統合 |
| 設定値/軽量機密 | Parameter Store(SecureString) | KMS 暗号化・標準は無料・階層管理 |
| 通信の暗号化 | TLS | HTTPS・S3 は SecureTransport を強制 |
| 証明書の管理 | ACM / ACM Private CA | 公開は無料/自動更新(EC2 不可)・内部は Private CA |
シナリオ:RDS のパスワードをコードに埋め込まず、90 日ごとに自動更新し、HTTPS でしか API にアクセスさせたくない。→ DB 認証情報は Secrets Manager(RDS 統合+Lambda 自動ローテーションで 90 日更新)に保管し、アプリは実行時に取得。公開エンドポイントは ACM 証明書を ALB/CloudFront に適用して TLS 化。S3 はバケットポリシーで aws:SecureTransport: false を Deny して HTTP を禁止。秘密はログに出さず、取得は最小権限の IAM で絞ります。
FAQ:Secrets Manager と Parameter Store はどう選ぶ? 自動ローテーション(DB 認証情報等)や RDS とのネイティブ統合、クロスアカウント共有が要るなら Secrets Manager(有料)。ローテーション不要の設定値や軽量な機密で十分なら Parameter Store の SecureString(標準は無料・KMS 暗号化)。コストと機能(特にローテーションの自動化)で選び、両者を併用することもできます。
ひっかけ:ACM の公開証明書を EC2 に直接インストールしようとするのは誤り——ACM の公開証明書はエクスポートできず、ELB/CloudFront/API Gateway 等に適用します。EC2 上で TLS を終端したいなら ACM Private CA か持ち込み証明書を使います。また機密を 環境変数や AMI に平文で焼き込むのも誤りで、Secrets Manager/Parameter Store から実行時に取得します。
5.2.2この節のまとめ
- 機密=Secrets Manager(ローテーション)/Parameter Store(SecureString)
- 転送時=TLS+ACM(証明書の自動更新)
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. データベースのパスワードを定期的に自動ローテーションしながら安全に管理したい。何を使いますか?
Q2. ELB や CloudFront 向けの公開 TLS 証明書を、無料で発行・自動更新したい。何を使いますか?
Q3. 設定値や軽量な機密を KMS 暗号化で一元管理し、コードに埋め込まず参照したい。手軽な選択肢は?

