0
2

More than 5 years have passed since last update.

AWS 『Identity and Access Management(IAM)』

Last updated at Posted at 2019-06-18

IAMとは

AWS_IAM.png
画像:CloudBerry Lab

AWS操作を実施するための認証・認可の仕組み

  • どのサービス(リソース)の
  • どういう機能や範囲を
  • 誰に

付与するのかを決めることができる。

IAMの機能

IAMには以下の4つの機能を用いてユーザーに権限を付与する。

  • IAMポリシー
  • IAMユーザー
  • IAMグループ
  • IAMロール

権限付与の流れとしては以下のようになる。

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

AWSのアカウントの種類

AWSのアカウントは以下の2つに大きく分類される。

  • ルートユーザー
  • IAMユーザー

ルートユーザー(AWSアカウント)

AWSの全サービスに対して操作できる権限を持っている非常に強力なアカウント。
多要素認証(Multi-Factor Authentication, MFA)の設定をし、セキュリティーを強くする。

特徴

  • AWSアカウント作成時に作られるIDアカウント
  • 全てのAWSサービスとリソースを使用できる情報を有するユーザー
  • 日常的なタスクはルートユーザーを使用しないことが強く推奨される

IAMユーザー

IAMポリシー内でAWSサービスを利用できるユーザー。基本操作はIAMユーザーで実施することになる。

IAMポリシー

IAMポリシーは、Effect(許可)Action(どのサービス)Resouuce(どの範囲、機能)の3つのルールをJSON形式で記述し、AWSのサービスを利用する上での権限を設定する。

以下に、『IAM ユーザーが自分の S3 ホームディレクトリにプログラムおよびコンソールでアクセスすることを許可する』ポリシーの例を示す。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::bucket-name",
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "",
                        "home/",
                        "home/${aws:username}/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket-name/home/${aws:username}",
                "arn:aws:s3:::bucket-name/home/${aws:username}/*"
            ]
        }
    ]
}

また、IAMポリシーは以下の2種類が使い分けられている

  • インラインポリシー(対象毎に個別に適用する。管理が煩雑になるので基本的には使わない。)
  • 管理ポリシー(複数のユーザー、グループに適用する。)

IAMユーザー

AWSを利用するために各利用者に与えられる認証情報(ID)。以下の2つの認証方法がある。

  • ユーザーIDとパスワード(Webコンソールのログインに使う)
  • アクセスキーとシークレットアクセスキー(CLIやAPIからAWSのリソースにアクセスするときに使う)

IAMグループ

ある権限を付与したグループにユーザーを入れることで、ユーザーの権限を容易かつ正確に管理することができる。
1人のユーザーが複数のグループに所属することも可能(最大10グループ)。

IAMロール

一時的にAWSリソースへのアクセス権限を付与するときに使用する。

  • EC2インスタンス上で稼働するアプリケーションにAWSのリソースへのアクセス権限を付与する

インスタンスにロールを付与することで、プログラムや設定ファイルに認証情報を書かなくて済むので、セキュリティーの向上が期待できる。

リファレンス

0
2
0

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
0
2