セキュアなアーキテクチャの設計
このドメインで学ぶこと
このドメインでは、AWS のリソースへの安全なアクセスの設計 (IAM のロールとポリシー、AWS Organizations のサービスコントロールポリシー、AWS IAM Identity Center)、ワークロードの保護 (セキュリティグループとネットワーク ACL、AWS WAF、AWS Shield、Amazon GuardDuty)、データの保護 (AWS KMS による暗号化、通信の暗号化、S3 のアクセスの制御) を学びます。採点の対象の 30% を占め、4 つのドメインの中で比率が最も高いドメインです。
重要ポイント
- IAM - 人のサインインは IAM Identity Center、アプリケーションには長期間有効なアクセスキーではなく IAM ロールの一時的な認証情報
- 最小権限 - ポリシーは必要な操作とリソースの ARN に絞り、組織全体の権限の上限はサービスコントロールポリシーで決める
- ネットワーク - セキュリティグループはインスタンスの単位の許可だけのルール、ネットワーク ACL はサブネットの単位で拒否も書けるルール
- 境界の防御 - Web の攻撃は AWS WAF、DDoS 攻撃は AWS Shield、脅威の検出は Amazon GuardDuty
- 暗号化 - 保存時は AWS KMS のキー、通信は TLS (AWS Certificate Manager の証明書と aws:SecureTransport の条件)
- プライベートな接続 - S3 と DynamoDB はゲートウェイエンドポイント、他のサービスや自社のサービスは AWS PrivateLink
用語と概念
IAM ロールと一時的な認証情報
IAM ロールは、引き受けた人やサービスに期限付きの認証情報を渡す仕組みです。EC2 にはインスタンスプロファイル、Lambda には実行ロール、別のアカウントには信頼ポリシーで引き受けを許可したロールを使います。アクセスキーを配る方法より漏れたときの被害が小さく、試験でも正解になりやすい形です。
サービスコントロールポリシー (SCP)
SCP は AWS Organizations の組織のアカウントで使える権限の上限を決めます。アカウントの管理者でも、SCP で拒否した操作は実行できません。権限を与える仕組みではないため、実際の操作には IAM ポリシーでの許可も必要です。
セキュリティグループとネットワーク ACL
セキュリティグループはインスタンスなどに付けるファイアウォールで、許可のルールだけを書き、戻りの通信は自動で許可されます。送信元に別のセキュリティグループを指定できるため、層の間の通信の制御に向いています。ネットワーク ACL はサブネットに付け、番号の順に許可と拒否を評価し、戻りの通信も明示して許可する必要があります。
AWS KMS のキーの種類
AWS KMS のキーには、利用者が作ってキーポリシーと自動ローテーションを管理できるカスタマーマネージドキーと、AWS のサービスが利用者のために作って管理する AWS マネージドキーがあります。使える人を自分で決める、使用の記録を細かく追うといった要件があれば、カスタマーマネージドキーを選びます。
AWS WAF / AWS Shield / Amazon GuardDuty の使い分け
AWS WAF は CloudFront や ALB などの前で HTTP のリクエストを検査し、SQL インジェクションや大量のリクエストを止めます。AWS Shield は DDoS 攻撃から守り、Standard は自動で無料、Advanced は専門チームへの相談と利用料の補償が付きます。Amazon GuardDuty はログを分析して怪しい通信や操作を見つけるサービスで、止める働きはありません。
VPC エンドポイントと AWS PrivateLink
ゲートウェイエンドポイントは S3 と DynamoDB だけに使える無料の仕組みで、ルートテーブルに経路を足します。インターフェイスエンドポイントは AWS PrivateLink を使い、多くの AWS のサービスや他の会社の VPC のサービスに、インターネットを経由せずプライベートな IP アドレスでつなぎます。