iamnついて調べる
aws仕事でAWSを触ることになり、IAM周りが分からんと何もならんので調べた。 参考書
- AWSアカウント: AWSにサインアップすることで作られるユーザ。ルートユーザとも呼ばれる。管理するリソースに対して何でもできるし、制限をかけることもできない。危険過ぎるので、必要時以外はルートユーザでアクセスすることはしない
- 厳密には、上記のとおり、まさに「アカウント」なんだろうけど、GCPのプロジェクトのように「リソース管理の基本単位」的な意味合いで使われることが多いような気がする
- IAMユーザ: 適宜、利用可能な機能・操作を設定できる認証主体。プログラムがこれで認証することもできるが、基本、人間が操作するとき用と思っておく。プログラムに使わせるのはIAMロールにした方が良いぽい
- AWS Organization: 複数のアカウントを束ねて、請求を束ねたり、設定を共通化したりすることができる
- これのおかげで、一つの会社の中に複数のアカウントを作り、本番用・開発用など分けることができる
- IAMポリシー: Action(どのサービスか), Resource(どの機能・範囲か), Effect(許可/拒否)のセット。これをIAMユーザー・IAMグループ・IAMロールに設定することで、それらが行える操作を制御する
- インラインポリシー: 対象(IAMユーザーなど)ごとにアドホックに設定されてるもの。基本、使わないんかな
- 管理ポリシー: 複数のポリシーをまとめてあるもの。GCPでいうロールだと思う。AWSが設定しているものとユーザーが自分で設定するものがあるのも同じ
- IAMユーザーの認証方法: ID/パスワード or アクセスキー/シークレット
- IAMグループ: IAMユーザーの集合。まとめて権限を付与できる
- IAMロール: IAMユーザーの認証状態には有効期限がない(永遠)。IAMロールでは、期間を限定した認証状態を作れる。こっちを使った方がセキュア。アカウントをまたいだアクセスなどに利用することもできる
- EC2にロールをアサインすることで、その中で動くプログラムが、そのロールの権限で動けるようになる
- IAMアイデンティティセンター: 複数アカウントにsingle sign onできるようにする。認証情報の提供元として、IDセンターディレクトリ(デフォルト。AWSが管理するディレクトリサービス)、Active Diretory、外部IdPなどが使える
- 権限セット: IAMロールの雛形。ユーザー(or グループ)に、権限セット + 対象となるアカウントをアサインすることができる。これで、誰がどこで何ができるかを一元管理できる