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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- IAMポリシードキュメントの構造
- アイデンティティベースとリソースベースのポリシー
- ポリシー評価の決定フロー
- 条件、ワイルドカード、ポリシー変数