1
1

AWS IAMポリシーをわかりやすく解説~Part1~

Posted at

はじめに

AWS (Amazon Web Services) を使い始めると、必ず出会うのが IAM (Identity and Access Management) です。IAMは、AWSリソースへのアクセスを安全に管理するための仕組みで、いわばAWSのセキュリティの要と言えるでしょう。今回は、AWS初心者でも理解できるよう、IAMポリシーの基本的な仕組みを解説していきます。

IAMポリシーとは?

IAMポリシーは、誰がどのAWSリソースにアクセスできるかを定義するルールセットです。例えば、特定のユーザーにS3バケットへの読み取りアクセス権を与えたり、特定のロールにEC2インスタンスの起動権限を与えたりすることができます。

IAMポリシーの構成要素

IAMポリシーは、ステートメントと呼ばれる一連のルールで構成されています。各ステートメントは、以下の5つの要素で構成されます。

  • 効果 (Effect): ステートメントがアクセスを許可するのか拒否するのかを指定します。Allow (許可) または Deny (拒否) のいずれかになります。
  • プリンシパル (Principal): アクセスを許可または拒否されるエンティティを指定します。ユーザー、グループ、ロールなどが含まれます。
  • アクション (Action): プリンシパルが実行できる操作を指定します。例えば、s3:GetObject (S3オブジェクトの取得)、ec2:RunInstances (EC2インスタンスの起動) などがあります。
  • リソース (Resource): プリンシパルがアクセスできるAWSリソースを指定します。例えば、arn:aws:s3:::my-bucket (S3バケット my-bucket) や arn:aws:ec2:ap-northeast-1:123456789012:instance/i-1234567890abcdef0 (EC2インスタンス i-1234567890abcdef0) などがあります。
  • 条件 (Condition): ステートメントが適用される追加の条件を指定します。例えば、特定のIPアドレスからのアクセスのみ許可する、特定の時間帯のみアクセスを許可するなどがあります。

IAMポリシーの評価

IAMポリシーは、ステートメントマッチングと呼ばれるプロセスを使用して評価されます。ステートメントマッチングでは、IAMはリクエストされたアクションと認可コンテキストを比較して、ステートメントがマッチするかどうかを判断します。

例えば、ユーザーAがS3バケット my-bucket からオブジェクトを取得しようとした場合、IAMは以下のようなプロセスでステートメントを評価します。

  1. ユーザーAにアタッチされているIAMポリシーを取得します。
  2. ユーザーAのリクエスト (S3オブジェクトの取得) と認可コンテキスト (ユーザーAのアカウント、IPアドレスなど) を取得します。
  3. IAMポリシー内の各ステートメントを評価し、リクエストとマッチするステートメントを探します。
  4. マッチするステートメントが見つかった場合、そのステートメントの効果に基づいてアクセスを許可または拒否します。
  5. マッチするステートメントが見つからなかった場合、アクセスは拒否されます。

IAMポリシーの種類

IAMポリシーは、主に以下の3つの種類があります。

  • IDベースのポリシー: ユーザーやグループに直接アタッチされ、きめ細かなアクセス権を管理するために使用されます。
  • サービスコントロールポリシー: AWS組織全体で適用され、広範なセキュリティ上の制限を管理するために使用されます。
  • リソースベースのポリシー: S3バケットやEC2インスタンスなどのリソースに直接アタッチされ、リソースへのアクセスを管理するために使用されます。

まとめ

IAMポリシーは、AWSリソースへのアクセスを管理するための強力なツールです。IAMポリシーを使用して、適切なアクセス権をユーザーやグループに付与し、AWS環境のセキュリティを強化することができます。AWSを使い始める際には、IAMポリシーについて理解しておくことが重要です。

参考資料

IAM Policy Evaluation Series: AWS IAM policy language explained

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1