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?

More than 1 year has passed since last update.

IAM に関するメモ

Posted at

はじめに

AWSのアカウント・ユーザー・権限の関係性が複雑に感じていたので、一から IAM について調べたことをまとめます。

概要

  • IAM とは
  • IAM ユーザー
  • IAM ポリシー
  • IAM ロール

IAM とは

IAM は「Identity and Access Management」の略で、IDとアクセス権を管理するサービスになります。

複数のAWSアカウントが存在する際、誰がどのアカウントにアクセスできるか、どのサービスを利用できるのかといった権限を管理するためのサービスです。


※複数のAWSアカウントを持つメリットとデメリット

IAM ユーザー

IAM ユーザーは 人に与えられるID で、AWSアカウントにログインする際に必要となるユーザー名とパスワードが付与されます。

下記のように1つのAWSアカウントに複数のユーザーを作成することが可能で、従業員1人ずつ個別のIAMユーザーを作成することが推奨されます。

├── AWS アカウントA
│   ├── IAM ユーザーA1
│   └── IAM ユーザーA2
│
└── AWS アカウントB
    ├── IAM ユーザーB1
    └── IAM ユーザーB2

新規作成したIAMユーザーには権限が存在しないため、後述する IAMポリシーを割り当てることでアクセス権を付与します。

ユーザーを複数まとめる「IAMユーザーグループ」という機能もあり、後述するIAMポリシー(アクセス権限)をグループに対して付与することも可能です。


別途として、AWSアカウントにログインするとき以外にも、プログラムに権限を渡したい場合にもIAMユーザーを作成することがあります。

IAM ポリシー

IAM ポリシーは

  • 何に対して
  • どんな操作を
  • できる(できない)

ということを定義した認可用のドキュメントで、AWSリソース(EC2やRDSなど)にアクセスするための権限設定になります。

IAMユーザーや後述のIAMロールに割り当てることで、これらの認可情報を付与します。


AWSがデフォルトで用意してくれているポリシーもありますが、自作することも可能です。

ポリシー 作成者 説明
AWS管理ポリシー AWS AWSによって事前に作成されているポリシー
カスタマー管理ポリシー 利用者 複数のIAMユーザーやIAMグループ、IAMロール間で共有可能
インラインポリシー 利用者 1:1で特定のIAMユーザーやIAMグループ、IAMロールに対して適用する

またIAMポリシーにはいくつかのアタッチ先が存在します。

ポリシー アタッチ先
ユーザーベースのポリシー IAMユーザー
リソースベースのポリシー AWSリソース
IAMロールの信頼ポリシー IAMロール

IAM ロール

IAM ロールは IAMポリシーをグループ化したようなもので、IAMユーザー、IAMグループ、AWSリソース(EC2、RDSといったAWSサービス)に対して付与するものになります。

前述したIAMポリシーをまとめてグループ化したものに名前を付けて管理することができます。

例えるなら、

├── 人事部権限(IAM ロール)
│   ├── 人員管理表のアクセス権(IAM ポリシー)
│
└── 開発部権限(IAM ロール)
    ├── ソースコードへのアクセス権(IAM ポリシー)
    └── 本番用AWS環境へのアクセス権(IAM ポリシー)

のようなイメージです。

AWSリソースへのアタッチですが、AWSリソースにはIAMポリシーを直接アタッチできるもの(S3、Lambdaなど)とできないもの(EC2、RDSなど)があります。
直接IAMポリシーをアタッチできればそれでよいのですが、できないリソースに対してはIAMロールとしてグループ化したものをアタッチすることで、リソースごとの権限を割り当てることができます。

また、IAMロールはアカウント間で共有して使用することが可能です。


ここでの詳しい説明は割愛させていただきますが、IAMロールを使うことでユーザーに対して一時的な権限を付与することもできます。

管理者が一時的に操作権限を割り当てて、完了したら権限を外して...といった面倒な作業も、STS(AWS Security Token Service)+IAMロール の組み合わせにより、認証後の一定期間が過ぎると操作権限を無効にする、といったように自動化できるようになります。

最後に

他の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?