1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IAMポリシー・ロールの文法(Principal, Resource, Condition)の説明

Last updated at Posted at 2025-05-25

はじめに

IAMポリシー、IAMロールを作成する際に毎回Principal、Resource、Conditionって何指定するんだっけ?ってことがあったので、まとめておきます。

Principal要素

IAMロールの信頼ポリシーまたは、リソースベースのポリシー(S3バケットポリシーなど)で指定するもので、アクションを実行する人、ユーザ、アプリケーションを指す。
つまり、誰がこの権限を用いて実行してもいいのか、どのサービスがこの権限を用いて実行していいのかを記載する要素です。
image.png

書き方としては以下になります。
※大文字小文字も区別され、「*」は使用できません。

  • "Principal": { "AWS": "arn:aws:iam::123456789012:root" }
  • "Principal": { "AWS": "arn:aws:iam::123456789012:user/role/ロール名" }
  • "Principal": { "AWS": "arn:aws:iam::123456789012:user/ユーザー名" }
  • "Principal": { "Service": "lambda.amazonaws.com(どのAWSサービスで利用するか)" }

Black Beltでも以下のように紹介されている
image.png

Resource要素

どのAWSリソースに対してアクション内容を許可・拒否するのかを記述する。
例えば、S3の特定のバケットの特定オブジェクトに対する操作を行う場合、
Resource要素には、S3の特定のバケットの特定オブジェクトを指定する。

例:

"Resource": "arn:aws:s3:::${bucketName}"

Condition要素

ポリシーを適用する際の条件を記載する。
条件演算子はこの記事を参考にしてください。

// ユーザー名のPrefixが"Hoge"だった場合のみ適用させたい
Condition: {
    "ArnEqals": {
        "aws:PrincipalArn": "arn:aws:iam::account-id:user/Hoge*"
    }
}

以上になります。

参考

1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?