3
2

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ロールの「信頼ポリシー」

Last updated at Posted at 2025-02-25

IAMロールって何ぞや?ということをロールを作ってみる中で疑問に抱き、そこで「信頼ポリシー」とやらの存在が気になったので見ていこうと思います。

IAMロールの作成画面に遷移すると、まず「信頼されたエンティティタイプを選択」する必要があります。
ここではまず「AWSのサービス」から「EC2」を選択してみましょう。

image.png

「許可を追加」から許可ポリシー=IAMポリシーを選択します。ここではS3のフルアクセスを与えます。

image.png

ロール名を入力して作成ボタンを押せばロール作成完了、というところまで来ました。
ここで「信頼ポリシー」というところに着目。
image.png

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Principal": {
                "Service": [
                    "ec2.amazonaws.com"
                ]
            }
        }
    ]
}

Principalのところに、エンティティタイプのところで指定したEC2の記載があります。
そしてActionは「sts:AssumeRole」。このAssumeRoleが、本IAMロールをあるリソースに付与する、IAMロールのアイコンに沿って表現するなら、"ヘルメットをかぶせる"行為となります。
ここにResourceの記載がないのは、どのResourceにこのIAMロールをかぶせるかは、IAMロールの設定をEC2構築時や設定時に決まるからです。

このように見ることで、IAMロールというのは、許可を付与する大枠のサービスと、許可するアクションを決めておき、それを一時的にあるリソースに与える=かぶせるものであるということがイメージしやすくなりました。

念のため冒頭の「信頼されたエンティティタイプを選択」で別のものも選んで確認してみます。

「AWSアカウント」を指定し、自分のアカウントを指定しました。
image.png

先ほど同様S3のフルアクセスを与えたのち、確認画面まで遷移すると、信頼ポリシーは以下のようになっていました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS": "【自分のアカウントID】"
            },
            "Condition": {}
        }
    ]
}

想定通り、Principalには選択したアカウントIDが記載されていました。

これを応用して、マネジメントコンソール右上の「ロールの切り替え」機能を使ってロールの切り替えができます。

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?