SAA-C03 · LESSON 1

セキュアなアーキテクチャの設計30% · 3項目

AWS リソースへの安全なアクセス、安全なワークロードとアプリケーション、データのセキュリティの管理策の設計を学びます。

1.1AWS リソースへの安全なアクセスを設計する

1.1 Design secure access to AWS resources.

概念

アクセスの設計の中心は IAM のポリシーの評価です。明示的な拒否(Deny)は常に優先され、許可が無ければ暗黙の拒否になります。複数アカウントでは AWS Organizations の SCP(サービスコントロールポリシー)がアカウントで使える権限の上限を決め、IAM Identity Center で人のアクセスを一元化します。別アカウントへのアクセスは IAM ロールの引き受け(AssumeRole)とリソースベースのポリシーで行います。

仕組み・手順

  1. 人のアクセスは IAM Identity Center と外部 IdP(SAML・OIDC)でフェデレーションする
  2. ワークロードには IAM ロールを使い、長期のアクセスキーを避ける
  3. SCP で禁止事項(リージョンの制限、ログの停止の禁止など)を組織全体に設定する
  4. クロスアカウントのアクセスは信頼ポリシー付きのロールで行う
  5. アクセスアナライザーで外部に公開されたリソースを検出する

業務での例

監査用アカウントの担当者が、本番アカウントの読み取り専用ロールを AssumeRole で引き受けて調査し、SCP で全アカウントの CloudTrail の停止を禁止する。

紛らわしい点・試験の注意

ミニクイズ

Q1. IAM のポリシー評価について正しい説明はどれか。

  1. アイデンティティポリシーで許可していても、いずれかのポリシーに明示的な拒否があればアクセスは拒否される
  2. アイデンティティポリシーとリソースポリシーが矛盾した場合は、後から作成したポリシーの内容が常に優先される
  3. SCP で許可された操作は、IAM ポリシーで許可していなくても実行できるようになる
  4. どのポリシーにも記載のない操作は、同じアカウント内であれば既定で許可される
答えと解説を見る

正解:A アイデンティティポリシーで許可していても、いずれかのポリシーに明示的な拒否があればアクセスは拒否される

IAM では明示的な拒否が最優先で、許可がどこにもなければ暗黙的に拒否される。SCP は許可の上限を定めるだけで、権限そのものは付与しない。

Q2. SCP の性質として正しいものはどれか。

  1. SCP を付けると、対象アカウントの IAM ユーザーに自動で同じ権限が付与される仕組みである
  2. SCP は操作の上限を定めるもので、実際に操作するには IAM ポリシーでの許可も必要になる
  3. SCP は個別の IAM ユーザーにだけ付けることができ、OU には付けられない
  4. SCP は管理アカウントにも適用され、管理アカウントの操作も同様に制限できる
答えと解説を見る

正解:B SCP は操作の上限を定めるもので、実際に操作するには IAM ポリシーでの許可も必要になる

SCP はメンバーアカウントで使える操作の上限(ガードレール)で、権限を与えるものではない。管理アカウントには影響しない。OU またはアカウント単位で適用する。

参考リンク

1.2安全なワークロードとアプリケーションを設計する

1.2 Design secure workloads and applications.

概念

ネットワークの層で守る設計です。公開する層(ALB)はパブリックサブネット、アプリと DB はプライベートサブネットに置き、セキュリティグループで「ALB からだけ」「アプリからだけ」のように参照して許可します。S3 や DynamoDB へはゲートウェイ VPC エンドポイント、その他のサービスへはインターフェイス VPC エンドポイント(PrivateLink)でインターネットを経由せずに接続します。攻撃の防御には AWS WAF・Shield、脅威の検出には GuardDuty を使います。

仕組み・手順

  1. 3 層(Web・アプリ・DB)をサブネットで分ける
  2. セキュリティグループは送信元に別のセキュリティグループを指定して最小限に許可する
  3. プライベートサブネットから AWS のサービスへは VPC エンドポイントを使う
  4. ALB や CloudFront に WAF を付ける
  5. シークレットは Secrets Manager に置き、自動でローテーションする

業務での例

DB のセキュリティグループで、送信元をアプリのセキュリティグループに限定し、アプリは NAT を通さずゲートウェイエンドポイントで S3 にアクセスする。

紛らわしい点・試験の注意

ミニクイズ

Q1. 3層構成の Web アプリ(ALB・アプリサーバー・RDS)を VPC に配置する。セキュリティの観点で最も適切な配置はどれか。

  1. すべてをプライベートサブネットに置き、NAT ゲートウェイで受け付ける
  2. ALB とアプリはパブリック、RDS はプライベートサブネットに置く
  3. ALB はパブリック、アプリと RDS はプライベートサブネットに置く
  4. アプリと RDS をパブリックに置き、セキュリティグループで ALB からだけ許可する
答えと解説を見る

正解:C ALB はパブリック、アプリと RDS はプライベートサブネットに置く

インターネットからの入口は ALB だけにし、アプリとデータベースはプライベートサブネットに置く。セキュリティグループで層ごとに必要な通信だけを許可する。 【他の選択肢】アプリをパブリックに置く必要はない。NAT ゲートウェイは外向きの通信用で、受信の入口にならない。パブリックに置くと設定の誤りで外部に露出するおそれがある。

Q2. セキュリティグループとネットワーク ACL の違いとして正しいものはどれか。

  1. セキュリティグループでは拒否ルールを書けるが、ネットワーク ACL では許可ルールしか書けない
  2. どちらもステートレスであり、ルールの番号順に評価される点も同じである
  3. セキュリティグループはサブネット単位、ネットワーク ACL はインスタンス単位で適用される
  4. セキュリティグループは戻りの通信を自動で許可し、ネットワーク ACL は戻りにも許可が必要
答えと解説を見る

正解:D セキュリティグループは戻りの通信を自動で許可し、ネットワーク ACL は戻りにも許可が必要

セキュリティグループはステートフル(許可のみ)でインスタンス(ENI)単位、ネットワーク ACL はステートレス(許可・拒否、番号順)でサブネット単位。

参考リンク

1.3適切なデータセキュリティの管理策を決める

1.3 Determine appropriate data security controls.

概念

データの保護は、保存時の暗号化(AWS KMS:AWS マネージドキー・カスタマーマネージドキー)、転送時の暗号化(TLS、ACM の証明書)、アクセスの制御(バケットポリシー・S3 ブロックパブリックアクセス)、バックアップと保持(AWS Backup・S3 バージョニング・S3 オブジェクトロック)で行います。鍵の利用者と鍵の管理者を分け、キーポリシーで制御します。

仕組み・手順

  1. データの分類(機密・社外秘・公開)を決める
  2. S3 ブロックパブリックアクセスを有効にし、既定の暗号化を設定する
  3. 監査や鍵の管理が必要ならカスタマーマネージドキー(自動ローテーション)を使う
  4. 改ざん防止が必要な記録は S3 オブジェクトロック(コンプライアンスモード)にする
  5. Macie で機密データの所在を確認する

業務での例

金融の取引記録を 7 年間変更できないように S3 オブジェクトロックで保存し、カスタマーマネージドキーで暗号化して、鍵の使用を CloudTrail で監査する。

紛らわしい点・試験の注意

ミニクイズ

Q1. モバイルアプリの利用者が、S3 の自分専用のフォルダに直接写真をアップロードする。AWS の認証情報をアプリに埋め込まない方法として最も適切なものはどれか。

  1. Cognito のアイデンティティプールで、権限を絞った一時的な認証情報を発行する
  2. ルートユーザーの認証情報を暗号化してアプリに保存する
  3. 共通の IAM ユーザーのアクセスキーをアプリに組み込み、すべての利用者でそのキーを共有して使う
  4. S3 バケットを一般公開し、誰でも書き込めるように設定する
答えと解説を見る

正解:A Cognito のアイデンティティプールで、権限を絞った一時的な認証情報を発行する

Cognito アイデンティティプールは、認証された利用者に IAM ロールに基づく一時的な認証情報を発行する。ポリシー変数で自分のプレフィックスだけに書き込みを限定できる。

Q2. アクセス許可の境界(Permissions boundary)の説明として正しいものはどれか。

  1. ユーザーが所属するグループの数の上限を決める設定で、権限の範囲には影響しない
  2. IAM ユーザーやロールが持てる権限の上限を設定し、境界の外の操作は許可していても実行できない
  3. Organizations の OU に適用して、組織全体の操作を制限する仕組みである
  4. リソースベースのポリシーの代わりに、S3 バケットや KMS キーへのアクセスを直接許可するための仕組みである
答えと解説を見る

正解:B IAM ユーザーやロールが持てる権限の上限を設定し、境界の外の操作は許可していても実行できない

アクセス許可の境界は、アイデンティティベースのポリシーで付与できる権限の上限を定める管理ポリシー。OU に適用するのは SCP。

参考リンク

レッスンは当サイトがAWS 認定の公式ページと公式試験ガイドをもとに独自に作成したもので、試験の内容を保証するものではありません。製品の仕様は変わることがあるため、参考リンク先の最新情報を確認してください。

ご利用上の注意(非公式・独自問題・合格保証なし)