Tech Starlog

AWS SAA 試験勉強(3日目)

投稿日:2026/03/03

AWS 認定ソリューションアーキテクト – アソシエイト(SAA-C03)において、セキュリティは単なる一分野ではなく、すべての設計の「大前提」です。
今回は、アクセス制御の要である IAM と、データを守る 暗号化(KMS)、そして監査について整理します。

1. IAM(Identity and Access Management)の4要素

「誰が(Who)」「何に(What)」「どうやって(How)」アクセスできるかを管理します。

  • IAM ユーザー: 人やアプリケーションに割り当てる個別の実体。
  • IAM グループ: ユーザーの集合。部署単位などで一括して権限を管理する際に使用。
  • IAM ロール: 特定の「役割」を定義したもの。一時的に権限を貸し出すイメージ。
  • IAM ポリシー: 具体的な許可内容を記述した JSON ドキュメント。

権限評価のゴールデンルール

  1. 明示的な拒否(Explicit Deny):一つでも「Deny」があれば、他がどうあれアクセス拒否。
  2. デフォルト拒否:明示的な「Allow」がない限り、アクセスは拒否される。
  3. 最小権限の原則:必要最低限の権限のみを付与する。

2. 実践的なアクセス制御:IAM ロールの活用

SAA試験で最も問われるのが、「アクセスキーを直接使わない」 という設計です。

ケース1:EC2からS3へファイルをアップロードしたい

  • バッドプラクティス: EC2内のプログラムに「アクセスキー/シークレットキー」をハードコードする。
  • ベストプラクティス: 「IAM ロール」 を作成し、EC2インスタンスにアタッチする。
    • メリット:キーが漏洩するリスクがなく、AWSが自動で一時的な認証情報を更新してくれます。

ケース2:別のアカウント(A社からB社)のリソースを操作したい

  • クロスアカウントアクセス: 信頼ポリシー(Trust Policy)を使用して、別アカウントのユーザーにロールの引き受け(AssumeRole)を許可します。

3. データの暗号化と KMS

「保存データの暗号化(Encryption at Rest)」は、エンタープライズ設計では必須です。

KMS(Key Management Service)

暗号鍵をフルマネージドで管理するサービスです。

  • カスタマー管理キー(CMK): ユーザーが作成・管理する鍵。ローテーション設定や詳細な権限管理が可能。

S3のサーバーサイド暗号化(SSE)比較

試験では、鍵を「誰が管理するか」で正解が変わります。

方式 鍵の管理 特徴
SSE-S3 AWS (S3側) 最も簡単。追加料金なし。
SSE-KMS AWS (KMS) 監査ログ(CloudTrail)に残るため、エンタープライズ向け。
SSE-C ユーザー 鍵を自身で管理。AWSには鍵を渡さない。

4. ネットワークセキュリティと「VPCエンドポイント」

セキュリティはIAMだけでは完結しません。通信経路の安全も問われます。

  • VPCエンドポイント (Gateway/Interface):
    • S3やDynamoDBへの通信を、インターネット(パブリック空間)を経由させず、AWSの内部ネットワークだけで完結させます。
    • 試験のキーワード:「トラフィックをインターネットに公開したくない」「セキュリティコンプライアンス」

5. 監査・監視サービスの使い分け

「何かあったときに後から追えるか」という監査の視点です。

  • AWS CloudTrail: 「誰が・いつ・どのAPIを叩いたか」を記録。犯人探しや操作ログ用。
  • AWS Config: 「リソースの設定がどう変わったか」を記録。設定の違反(例:S3が公開設定になったなど)を検知。
  • Amazon GuardDuty: マシン学習を用いた脅威検知(不正なログイン試行など)。

試験頻出の対策パターン

  1. 「最も安全にEC2からAWSサービスを操作するには?」
    • 回答:IAMロールを使用する。
  2. 「機密データの管理で、アクセスログを詳細に残したい」
    • 回答:SSE-KMS + CloudTrail。
  3. 「ルートユーザーのセキュリティを最大化したい」
    • 回答:ハードウェアMFA(多要素認証)の有効化。
  4. 「S3への通信をVPC内に閉じ込めたい」
    • 回答:VPCエンドポイント(ゲートウェイ型)の利用。

まとめ(3日目の振り返り)

セキュリティの設計は「多層防御」が基本です。
IAMで「人」を縛り、KMSで「データ」を隠し、VPCエンドポイントで「経路」を隠す。