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

【AWS】触って理解するIAMユーザー、ロール、AssumeRole

Posted at

はじめに

業務でほどよくAWSは使用しますが、管理側(?)は経験がありません。
AWSの認定資格の勉強でも、結構アカウント管理周りは机上の理解でした。

そこで、今回はアカウント管理で重要なAssumeRoleについて、実際に触って整理していこうと思います。

前提理解

ここは前提として、サクッとまとめます。

IAMユーザーだけで管理する

誰になんの権限をもたせるか、、、複雑ですね。

ロールを使用する

さて、これをロールを使用して綺麗にしていきましょう。

前提のまとめ

ユーザーだけで権限管理しようとするととても複雑なので、ロールごとにまとめることでシンプルになりました。

これによって

  • ユーザー
    • 誰がいるか
  • ロール
    • どんな案件(ロール)があるか
    • それぞれ何ができるか

が整理できました。

このユーザーとロールを紐付けるために、AssumeRoleを使用します。

では、ユーザーとロールを紐づけて、AssumeRoleの実際の動きを見ていきましょう。

AssumeRole

ケース

今回は同一のアカウントから行います。実際には別アカウントになったりしますね。

  • ユーザーA
    • ロール1へのAssumeRoleのみ可能
  • ロール1
    • ユーザーAからのAssumeRoleを許可
    • Lambdaへのフルアクセスを許可

やってみること

以下の構成を実際にやってみます。

ユーザーA

ユーザーAには以下のポリシーを設定しています。

詳細は省きますが、とにかくAssumeRoleしか許可していない、という意味です。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AssumeRolePolicy",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::XXXXXXXXXXXX:role/role1"
        }
    ]
}

前述の通り、AssumeRole以外の権限を持っていないので、ユーザーAでのログイン時には、Lambdaにアクセスできません。

image-1.png

ロール1

続いて、ロール1には以下を設定しています。

信頼ポリシー

ユーザーAからのAssumeRoleのみ許可しています。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::XXXXXXXXXXXX:user/userA"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

許可ポリシー

ここでは、Lambdaのフルアクセスを許可します。

この例では分かりやすさのために*FullAccessを使用していますが、実際の運用では必要最小限の権限を付与しましょう。

image-2.png

ここまで

ユーザーAとロール1の双方で、AssumeRoleを許可する関係ができました。

ユーザーとロールの両方で許可し合うことで、AssumeRoleの準備ができます。

  • ユーザー側がロールへのAssumeRole権限を持っている
  • ロール側がユーザーからのAssumeRoleを許可している

てことでやってみる

では実際にやってみましょう。

ふりかえり

ユーザーAの状態では、Lambdaにアクセスはできません。

image-1.png

Switch

コンソール右上のメニューから、ロールの切り替えを選択し。

image.png

作成したロールの情報を入力します。

image-3.png

そうすると、ロールが変わった状態になります。

確認

さきほどアクセスできなかったLambdaのダッシュボードにアクセスできました。

image-4.png

で、いつのまにかAssumeRoleからスイッチロールに変わっていましたが、実際には以下が行われています。
ユーザーがロールを使用する過程でAssumeRoleが行われます。

まとめ

今回はAssumeRoleについてまとめました。

ユーザーとロールの構築、AssumeRoleの実際の挙動を見てきましたが、開発者の立場でアサインされることが多く

  • 現場ではアカウントを渡されて、なんとなく実施している
  • AWS認定試験では、机上の理解になっている

となりがちだったので、実際に触って整理すると、とても理解が深まりました。
同じようなふんわり理解の方々などの参考になれば幸いです。

以上です。

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