LoginSignup
76
84

More than 3 years have passed since last update.

AWS : IAMについて今更学ぶ

Last updated at Posted at 2018-07-10

概要

IAM (Identity and Access Management) とは

「どのサービス(リソース)に対する」
「どのような操作を」
「誰に」
許可するか・許可しないかを定義出来る

IAM を用いてユーザに権限を付与するまでの流れ

  1. AWSサービスやAWSリソースに対する操作権限を「IAMポリシー」として定義する
  2. IAMポリシーを「IAMユーザー」や「IAMグループ」にアタッチする

IAMポリシー

  • AWSサービスやAWSリソースに対する操作権限をJSON形式で定義したものがIAMポリシー

定義項目

項目 内容
Version IAMポリシーの文法バージョン(2017年12月現在は「2012-10-17」)
Effect ここで定義するポリシーが許可を与えるポリシー(Allow)か拒否するポリシー(Deny)かを設定
Action 「どのAWSサービス」に対する「どのような操作」を許可(拒否)するかを設定
Resource 「どのAWSリソース」に対する操作を許可(拒否)するかを設定

IAMポリシー例

  • EC2リソースの閲覧
  • EC2インスタンスの開始
  • EC2インスタンスの停止

上記権限を付与するポリシーは以下

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:Describe*",
                "ec2:StartInstances",
                "ec2:StopInstances*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

Action

Action にEC2関連の全ての参照権限を示す ec2:Describe*
EC2のインスタンスの開始と停止権限の ec2:StartInstances ec2:StopInstances を設定
* を用いることで ec2:Describe* から始まる全ての権限を許可している

Resouce

Resouce* を設定することで全てのリソースに対して権限を付与している
Resouce に Amazonリソースネーム(ARN) を設定することでAWSリソース個別指定することも可能
ARNは arn:aws:ec2:region:account:instance/instance-id のように指定できる

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:Describe*",
                "ec2:StartInstances",
                "ec2:StopInstances*"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:ec2:region:account:instance/i-xxxxxxxxx",
            "Resource": "arn:aws:ec2:region:account:instance/i-yyyyyyyyy"
        }
    ]
}

Effect

EffectAllow Deny を設定することで許可 / 拒否を設定できる

IAMユーザーとIAMグループ

AWSの操作を行うためのユーザーを IAMユーザー と呼ぶ
IAMユーザーは主にマネジメントコンソールにログインする用途で使用される
IAMユーザーにIAMポリシーをアタッチすることで操作権限を付与できる
アクセスキーとシークレットキーのキーペアを払い出しIAMユーザーと同等の権限をプログラムに付与することもできる

IAMグループ は同じ権限を付与すしたいIAMユーザーをひとまとめに管理する
IAMグループにIAMポリシーをアタッチすることでIAMユーザーへ一律に権限を付与することができる

ルートユーザーの扱い

マネジメントコンソールにログインできるのはIAMユーザーだけではない
AWSアカウント作成時に設定したアドレスとパスワードでログインできる ルートユーザー が存在する
ルートユーザーはAWSアカウントに対する全ての操作が可能
更に下記の操作はルートユーザーのみが実行可能

  • AWSアカウント全体の設定変更(メールアドレス / パスワード変更など)
  • AWSサポートのプラン変更
  • EC2からのメール上限緩和申請
  • 逆引きDNS申請
  • 侵入テスト申請
  • AWSアカウントの停止

Admin権限を付与したIAMユーザーでも上記操作はできない
これらからルートユーザーは 日常の開発/運用 では使用しない
初めにAdmin権限を付与したIAMユーザーを作成しそのユーザーで作業を行うようにする
AWSアカウントは 二要素認証 をかけ上記のようなルートユーザでしかできない作業以外で使用しない

76
84
1

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
76
84