IAM — 認証・認可の根幹
AWS IAM(Identity and Access Management) は AWS のすべての操作に関わる認証・認可サービスです。 「誰が」「何を」「どのリソースに対して」操作できるかを JSON ポリシーで細かく制御します。
⚠️ ルートアカウントの扱い
AWS アカウントのルートユーザーは日常業務に使用しないことが鉄則です。ルートアカウントは MFA を設定したうえで厳重に管理し、通常操作は適切な権限を持つ IAM ユーザー・ロールで行います。
✅ 最小権限の原則
IAM ポリシーは必要最小限の権限のみを付与します。*(ワイルドカード)を使った過剰な権限付与は、セキュリティインシデント時の影響範囲を拡大させます。
WAF — Webアプリケーションファイアウォール
AWS WAF は HTTP/HTTPS レベルの攻撃を検知・ブロックするファイアウォールです。 CloudFront・ALB・API Gateway にアタッチして使用します。
KMS — 暗号化キー管理
AWS KMS(Key Management Service) は暗号化キーの作成・管理・使用を一元化するサービスです。 S3・RDS・EBS・Secrets Manager など多くの AWS サービスが KMS と統合されており、データを暗号化する際のキー管理を担います。
| キータイプ | 管理者 | 用途 |
|---|---|---|
| AWS 管理キー | AWS が自動作成・管理 | S3・RDS のデフォルト暗号化など。カスタマイズ不可 |
| カスタマー管理キー(CMK) | ユーザーが作成・管理 | ローテーションポリシーやアクセスポリシーを細かく制御したい場合 |
| インポート済みキー | ユーザーがキーマテリアルを持ち込み | 既存の HSM・PKI からキーをインポートする場合 |
Shield — DDoS防御
AWS Shield は DDoS(分散型サービス拒否)攻撃からAWSリソースを保護するサービスです。
Shield Standard はすべての AWS ユーザーに無料で自動適用され、L3/L4 レベルの一般的な DDoS 攻撃を防御します。 Shield Advanced は有料オプションで、L7 の高度な DDoS 攻撃への対応・DDoS コスト保護・AWS DDoS レスポンスチーム(DRT)へのアクセスが追加されます。
Cognito — ユーザー認証
Amazon Cognito はWebアプリ・モバイルアプリのユーザー認証基盤をマネージドで提供するサービスです。
Secrets Manager — シークレット管理
AWS Secrets Manager は DB パスワード・API キー・OAuth トークンなどのシークレットを安全に保存・ローテーションするサービスです。 アプリケーションのコード中にパスワードをハードコーディングする代わりに、実行時に Secrets Manager から取得する設計パターンが推奨されます。 RDS / Aurora のパスワードを自動ローテーションする機能も提供しています。
💡 Parameter Store との使い分け
Secrets Manager:シークレットの自動ローテーションが必要な場合・コスト許容できる場合。Systems Manager Parameter Store:設定値(非シークレット)や簡単なシークレット管理。無料枠が広い。
セキュリティサービス一覧
| サービス | 分類 | 主な役割 |
|---|---|---|
| IAM | 認証・認可 | AWS リソース操作の認証・認可の根幹。すべての設計の起点 |
| Cognito | ユーザー認証 | アプリユーザーのサインアップ・ログイン・MFA 管理 |
| WAF | 防御(L7) | SQLi・XSS・レートリミット・ボット対策 |
| Shield | 防御(L3/L4) | DDoS 攻撃の自動検知・軽減 |
| KMS | 暗号化 | 各種サービスのデータ暗号化キー管理 |
| Secrets Manager | シークレット管理 | パスワード・APIキーの保管・自動ローテーション |
| GuardDuty | 脅威検知 | 異常な API コール・マルウェア通信の検知(機械学習) |
| Security Hub | 一元管理 | 複数セキュリティサービスの検出結果を集約・可視化 |