AWS メモ 〜 IAM(Identity and Access Management)
用途
AWSを利用するユーザの管理、AWS内のリソースのアクセス管理を行う。
範囲
グローバル
使い方
ルートユーザを登録したのち、AWSコンソールにて最初のIAMユーザを作成する。以降は、IAMユーザでログインし、操作を継続する。
マネジメントコンソールから、IAMユーザ、IAMグループ、IAMロールを作成することができる。また、各ユーザ、グループ、ロールのアクセス権を定義するポリシーを設定することができる。
マネジメントコンソースにアクセスするには、IDとパスワードを用いる。オプションとしてMFAを追加することができる。CLIやSDKにアクセスする場合にはアクセスキー(アクセスID+シークレットキー)を用いる。
キーワード
ルートアカウント
AWSアカウントの管理を行うためのアカウント。
権限が強すぎるためなるべく使わない。
課金情報へのアクセスなどルートアカウントのみ可能な操作がある。
IAM ユーザ
AWS上で実際のユーザに紐づけられるアカウント。ポリシーでAWS上のどのリソースに対して、どの操作ができるかが定義されている。
例:
管理者:IAMの操作権限あり
パワーユーザ:IAMの操作以外のAWSリソースのフルアクセス権限あり
IAMグループ
複数のIAMユーザからなるグループ。
一般的には、IAMグループにアクセス権(ポリシー)を設定し、IAMユーザはグループに所属することで、リソースにアクセスできるようにする運用が推奨される。
IAMユーザは複数のグループに所属することができる。
IAMグループを階層的に別のIAMグループに含めることはできない。
IAMロール
一時的に権限委譲するための仕組み。IAMロールには、IAMロールとして振る舞えるかどうかを判定する信頼ポリシーと、IAMロールがどのリソースにアクセスできるかを判定する許可ポリシーとが必要となる。以下のシーンで用いられる。
EC2などのリソースがS3などの別のリソースにアクセスする場合
監査法人が監査する場合など、一時的に他のAWSアカウント管理のIAMユーザがAWSを利用する場合
ActiveDirectoryなど別の方法で管理されているユーザがAWSのユーザとしてAWSを利用する場合
IAMポリシー
IAMユーザ、IAMグループ、IAMロールがどのリソースにどういった条件でアクセスできるか、もしくはできないかを定義する。JSON形式で記載される。ポリシーは以下の内容から構成される。
Version:記述言語のバージョン(2012-10-17)
ID:ポリシーの識別子
Statement:以下の構成要素を持つ宣言
Sid:Statementの識別子(オプション)
Effect: Allow or Deny
Principal:ポリシーが適用されるユーザ/グループ/ロール
Action:Effectの対象のなる操作
Resource:Actionの対象となるリソース
Condition:ポリシーが適用される条件(オプション)
IAMポリシーには以下の種類がある
AWS管理ポリシー:AWS側があらかじめ用意しているポリシー。ユーザやロールに適用できる
カスタマー管理ポリシー:利用者が定義するポリシー。ユーザやロールにアタッチすることで再利用できる
インラインポリシー:一つのユーザ、ロール、グループにアタッチされる
許可の境界(パーミッションバウンダリ)
ユーザ、ロールを作成する際にポリシーの範囲を指定できる。間違って想定以上の権利がユーザ、ロールに割り当てられることを防ぐ。パーミッションバウンダリの範囲で、ポリシーで許可された操作を実行できる。
AWS Organizations
複数のAWSアカウントを管理する。一つのAWSアカウントをマスターアカウントとして、その他のAWSをメンバーアカウントとして組織(OU)に紐付け、階層的にアカウントの管理ができる。
複数のアカウントの一括管理:どのAWSアカウントがどの範囲のポリシーに紐づけられたアカウントを作成できるかを管理できる。組織(OU)にサービスコントロールポリシーを紐づけることで、パーミッションバウンダリと同様に、ポリシーの範囲を制限することができる。
新規アカウントの作成管理:組織ごとにアカウントの作成方法やロギングをコントロールできる。
一括請求:複数のAWSアカウントを一括請求にすることで、支払いの手間を減らすとともに、ボリュームディスカウントを適用範囲を広げることができる。
Access Advisor
マネジメントコンソールのIAMのダッシュボードから表示、アクセスしたサービスと最後にアクセスした時間が表示される
Access Analyzer
意図しない形でのアクセスが発生していないか分析を行う
ポリシーシミュレーター
ポリシーが意図通りに設定できているかを確認するツール。
MFA
IAMユーザなどの認証を行う際、IDバスワードだけでなく、そのそのほかの情報(モバイル認証アプリケーションの表示結果など)を用いて認証を行う
IAM Identity Center
既存のディレクトリサービス(Active Directoryなど)の連携や、複数のAWSアカウント間のシングルサインオンを実現する