0Pricing
AWS Security Academy · レッスン

IAMポリシードキュメントの構造

ポリシーの効果、アクション、リソース、条件を読み取ります。

「IAMポリシードキュメントの構造」はCoddyKit上の無料AWS Security Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Security Academyコースには全4レッスンが含まれています。

ポリシーが権限を定義する

AWS では、権限をポリシーとして表現します。ポリシーは、リソースに対するアクションへのアクセスを許可または拒否する JSON ドキュメントです。ほぼすべてのアクセスに関する問題は、ポリシーが何を許可し、拒否し、または対象外としているかに帰着するため、ポリシーを正確に読み解くことは SCS-C02 の重要なスキルです。このレッスンでは、その構造を順に詳しく見ていきます。

Statement 配列

ポリシーには Version フィールド("2012-10-17" を使用)と、1 つのステートメントまたは複数のステートメントの配列である Statement 要素が含まれます。各ステートメントは独立したルールです。AWS はすべてのステートメントを評価するため、1 つのドキュメントで一部のアクションを許可し、別のアクションを明示的に拒否できます。

Effect: Allow または Deny

すべてのステートメントには、Allow または Deny のいずれかの Effect があります。AWS はデフォルトで拒否するため、一致する Allow がなければリクエストは拒否されます。一致する Deny は、Allow よりも常に優先されます。アクセスを判断する際は、各ステートメントの Effect を最初に確認してください。

Action と NotAction

Action 要素には、ステートメントが適用される API 操作を service:operation 形式で指定します。たとえば s3:GetObject です。s3:* や s3:Get* のようにワイルドカードも使用できます。逆の意味を持つ NotAction は、指定されたアクション以外のすべてのアクションに一致します。誤用しやすいため、試験でも慎重に問われます。

Resource と NotResource

Resource 要素には、アクションを適用するリソースを ARN(Amazon Resource Names)で指定します。たとえば、特定のバケットとそのオブジェクトを指定できます。値が "*" の場合は、すべてのリソースを意味します。NotResource は、指定された ARN 以外のすべてに一致します。リソースの範囲を厳密に限定することは、最小権限の中心的な考え方です。

ポリシーの例

このアイデンティティポリシーは、1 つのバケットからオブジェクトを読み取ることだけを許可します。アクション、特定のオブジェクトレベルの ARN、明示的な Allow 効果に注目してください。

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::reports/*"
  }]
}

Condition ブロック

任意の Condition ブロックでは、コンテキストキーと演算子を使用して、ステートメントを適用する条件を限定します。たとえば、リクエストが TLS(aws:SecureTransport)を使用している場合、または既知の IP から送信された場合だけ許可できます。Condition によって、アクションとリソースだけでは実現できない、きめ細かくコンテキストを考慮した制御を追加できます。

リソースポリシーの Principal

アイデンティティベースのポリシーは、すでにプリンシパルにアタッチされているため、Principal 要素を省略します。リソースベースのポリシー(S3 バケットポリシーなど)には Principal が含まれ、ルールの適用対象を指定します。ポリシーに Principal があるかどうかを確認すれば、どの種類のポリシーを読んでいるか判断できます。

ワイルドカードには危険がある

"Action": "*" と "Resource": "*" のようなワイルドカードを組み合わせると、完全な管理者アクセスが付与されます。試験では、権限が過剰なポリシーを示し、絞り込む方法を問うことがよくあります。修正方法は、ワイルドカードを具体的なアクションと ARN に置き換え、最小権限を適用することです。

ARN の読み解き方

ARN は arn:partition:service:region:account:resource という形式です。サービスによっては region または account が省略されます(S3 ではバケット部分の両方が省略されます)。ARN を正確に読めれば、ポリシーが 1 つのリソース、1 つのアカウント、またはすべてを対象としているかを判断できます。これは付与されるアクセス範囲に直接影響します。

ポリシーを素早く読む

ポリシーを分析するには、Effect を確認し、Action を読み(NotAction とワイルドカードに注意)、Resource の範囲を確認し("*" に注意)、Condition があれば調べます。明示的な拒否は許可より優先され、デフォルトは拒否であることを忘れないでください。練習すれば、試験で求められるとおり、ポリシーが実際に及ぼす範囲を数秒で判断できるようになります。

理解度チェック

ポリシーを読み解くスキルを確認しましょう。

まとめ

IAM ポリシーは、Version と Statement 配列を持つ JSON です。各ステートメントには、Effect(Allow/Deny)、Action(または NotAction)、ARN による Resource(または NotResource)、そして任意の Condition があります。リソースベースのポリシーには Principal が追加されます。デフォルトは拒否で、明示的な拒否が常に優先されます。ワイルドカードは権限過剰の兆候なので、範囲を絞り込んでください。

よくある質問

「IAMポリシードキュメントの構造」レッスンは無料ですか?

はい。「IAMポリシードキュメントの構造」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Security Academyコースには全4レッスンが含まれています。

「IAMポリシードキュメントの構造」で何を学びますか?

ポリシーの効果、アクション、リソース、条件を読み取ります。 ブラウザで直接実行するハンズオンコードでAWS Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AWS Security Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAWS Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「IAMポリシードキュメントの構造」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAWS Security Academyレッスンでコードを書いて実行できますか?

はい。すべてのAWS Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. IAMポリシードキュメントの構造
  2. アイデンティティベースとリソースベースのポリシー
  3. ポリシー評価の決定フロー
  4. 条件、ワイルドカード、ポリシー変数
← AWS Security Academyに戻る