IAMとは
- AWSのサービスで、どのユーザーがお客様のAWSリソースを使用できるか (認証) と、それらのユーザーがどのリソースをどのような方法でしようできるか、 (認可) の設定を行うことができるサービス
- ユーザがアクセスするための認証情報、ユーザがアクセスするAWSリーソースを制御するための権限を集中管理
- EC2やLambdaから他サービスへのアクセス制御を行うことも可能
IAMユーザーとは
- AWSを利用するアカウント。
- 認可情報(IAMポリシー)を付与することが可能
- IAMグループに所属させることが可能
- ルートユーザーを使用しないようにする
- IAMユーザー作成時はMFA(多要素認証)をするべし
- 個々のユーザーには最小限のポリシーを与えるべし
IAMユーザーの認証方法
- パスワード
- ユーザー名と組み合わせてManagement Consoleへログイン
- アクセスキーID/シークレットアクセスキー
- APIを使用するときのクレデンシャル情報
IAMグループとは
- IAMユーザーの集合
- 認可情報(IAMポリシー)を付与することが可能
- 同じ権限のIAMユーザーが複数存在する場合、IMAユーザーを用いて一つにまとめると便利
IAMロールとは
- ユーザーやグループが「人」に対して割り当てられるのに対し、ロールは主に「(EC2等の)インスタンス」に割り当てられる。
- IAMユーザーやグループには付与されない
- IAMロールにIAMポリシーを紐づける
- E2Eで利用されることが多い
IAMポリシーとは
- AWSのリソースに対する権限設定を行う
- Jsonで記述する
IAMポリシー書き方
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:Describe*",
"ec2:StartInstances",
"ec2:StopInstances*"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::xxx"
}
]
}
Action
ec2:Describe* から始まる全ての権限を許可している
ec2:StartInstances ec2:StopInstances: EC2インスタンスの開始と停止権限を設定
Resouce
arn:aws:s3:::xxx: 取り扱うオブジェクトのARNを表す。この場合指定したS3のバケットにActionで指定した権限を許可している。
Effect
Effect に Allow Deny を設定することで、ユーザーがResourceにアクセスすることに対して、許可または拒否を設定できる
デフォルトでは拒否されるように設定されている。