IAM — 認証・認可の根幹

AWS IAM(Identity and Access Management) は AWS のすべての操作に関わる認証・認可サービスです。 「誰が」「何を」「どのリソースに対して」操作できるかを JSON ポリシーで細かく制御します。

ユーザー
人(オペレーター)に対して発行するアカウント。アクセスキー(プログラム用)またはコンソールパスワードで認証する。
ロール
EC2・Lambda・ECS などの AWS リソースや外部アカウントに一時的に権限を付与する仕組み。アクセスキーを直接持たせずに済む最重要の概念。
ポリシー
JSON 形式でアクションと対象リソースを記述したアクセス制御ルール。AWS 管理ポリシーとカスタマー管理ポリシーがある。
MFA
ルートアカウントおよびすべての IAM ユーザーへの MFA(多要素認証)設定は最優先のセキュリティ施策。

⚠️ ルートアカウントの扱い

AWS アカウントのルートユーザーは日常業務に使用しないことが鉄則です。ルートアカウントは MFA を設定したうえで厳重に管理し、通常操作は適切な権限を持つ IAM ユーザー・ロールで行います。

最小権限の原則

IAM ポリシーは必要最小限の権限のみを付与します。*(ワイルドカード)を使った過剰な権限付与は、セキュリティインシデント時の影響範囲を拡大させます。

WAF — Webアプリケーションファイアウォール

AWS WAF は HTTP/HTTPS レベルの攻撃を検知・ブロックするファイアウォールです。 CloudFront・ALB・API Gateway にアタッチして使用します。

マネージドルール
AWS および AWS Marketplace が提供するルールセット。OWASP Top 10 対策、SQL インジェクション、XSS、既知の悪意あるIPリスト等を即座に適用できる。
カスタムルール
IP アドレス・ヘッダー・URI パス・クエリパラメータ・リクエスト本文など様々な条件でカスタムブロックルールを作成できる。
レートベースルール
同一 IP から一定期間内に一定回数以上のリクエストがあった場合に自動ブロック。ブルートフォース攻撃・DDoS の軽減に有効。
Bot Control
スクレイパー・クローラーなどの悪意あるボットを検出しブロック。合法的なボット(Googlebot 等)は許可リストで除外可能。

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アプリ・モバイルアプリのユーザー認証基盤をマネージドで提供するサービスです。

User Pools
メール/パスワード・ソーシャルログイン(Google/Facebook/Apple)・SAML・OIDC によるユーザー認証を管理する。JWT トークンを発行し API Gateway / ALB と統合できる。
Identity Pools
認証済みユーザーや未認証ユーザーに AWS リソース(S3・DynamoDB 等)へのアクセス権限を一時的に付与する。IAM ロールとの橋渡し役。

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一元管理複数セキュリティサービスの検出結果を集約・可視化