【AWS】「アカウント」と「IAMなんとか」を学びなおす
はじめに
引き続きSAAの試験勉強をしていますが、自分はAWSを業務でも触っています。
一番重要といっても差支えない「アカウント」と「IAM」の部分を、
適当に理解しすぎてしまっているので、自戒も兼ねて改めて学びなおします。
アカウントについて
AWSには 「AWSアカウント」 と 「IAMユーザー」 と呼ばれる
2種類のアカウントが存在する。
■AWSアカウント
AWSコンソールにログインするために作るアカウント。
AWSのすべてのサービスを利用できるため、「ルートユーザー」 とも呼ぶ。
基本的には後述のIAMユーザーを作成して運用し、AWSアカウントは極力利用しないようにする。
また、「AWS organizations(組織アカウント)」 というものもある。
企業では、AWSアカウントを複数持っている事が多いため、アカウントを一括管理するためにこれを利用する。
請求をまとめたり、利用可能なサービスをAWSアカウント単位で制限する「サービスコントロールポリシー(SCP)」も利用できる。
■IAMユーザー
AWSを利用する各ユーザー向けに作るアカウント。
初期状態では存在せず、AWSアカウントにログインし、必要に応じて作成する。
(「必要に応じて」というが、実際はマストで作るべきもの)
IAMなんとかの種類とそれぞれの説明
■IAMポリシー
『「どのサービス(アクション)」の「どういう機能や範囲(リソース)」を「許可・拒否」すること』を定義する
ただ、これを作っただけでは何の効力もない。
IAMユーザ、IAMグループ、IAMロールに付与することで初めて効力を発揮する。
このポリシーには、大きく分けて2種類ある。
●インラインポリシー
1人のユーザ、グループなどに対し、付与したい場合に作成するポリシー。
ポリシーを付与する「対象」を軸として、設定するもの。
これを多用すると管理が大変なことになるので、
ある特定の人物等に対し、一時的に特殊な操作をしてもらいたい場合等に、利用する。
●管理(マネージド)ポリシー
1つのポリシーを複数のユーザやグループに適用するポリシー。
また、複数ポリシーを適用することが可能。
細かく分けるとさらに2つある。
・AWS管理ポリシー
AWSがデフォで用意しているポリシー。
何でもできるor読み取りだけ、みたいな大雑把な制御ができる。
・カスタマー管理ポリシー
ユーザ自身が管理するポリシー。
例えば、EC2を「起動」「停止」出来る権限だけを与えて、「終了(削除)」出来る権限は与えない、というような細かな制御ができる。
また、ここで定義したポリシーは5世代までバージョン管理が可能。
■IAMユーザー
基本は先述した通り。
ただし、「人」だけでなくAPIなどを実行する主体も含まれる(らしい)
この場合は、ユーザID/PASSではなく、アクセスキーとシークレットアクセスキーで認証する。
■IAMグループ
上記ユーザをまとめるもの。
使い方としては、複数のユーザをグループにし、
グループに対してポリシーを付与することで、権限の管理をしやすくする。
また、1人のユーザが複数のグループに所属することもできる。
■IAMロール
一時的にAWSリソースへのアクセス権限を付与するもの。
ポリシーの集合体。よくあるのがEC2からS3にアクセスできたりするようにしたりするやつ。
もしくは、複数アカウントで色々操作をしたい場合にも使う。
例えば、アカウントAのユーザに対し、アカウントBで定義したロールを付与することで、
アカウントBでロールの操作を出来る。
ユーザに権限を付与する場合の流れ
1.AWSサービスやリソースに対する操作権限をIAMポリシーで定義
2.IAMポリシーをIAMユーザ/IAMグループにアタッチする。
3.IAMユーザ/IAMグループに属するユーザがコンソールにログインすると、アタッチされた権限の操作ができるようになる。
サービスに対し操作権限を付与するときの流れ
1.IAMロールで操作権限を定義
2.IAMロールを操作したいAWSサービスにアタッチ
所感
ある程度整理出来た気がします。
全然関係ないですが、今日はクリスマスイブでした。メリークリスマス!
Discussion