読者です 読者をやめる 読者になる 読者になる

ぺーぺーSEのブログ

備忘録・メモ用サイト。

AWS Identity and Access Management (IAM)の概念整理

AWS AWS IAM AWS Directory Service

AWS Identity and Access Management (IAM) は、ユーザーに対して AWS へのアクセスを安全に制御するためのウェブサービス
わけわかんなくなったのでちょっと整理。
公式ドキュメント

IAMで扱うの概念

IAMで扱う概念には以下がある。

  • ユーザー
    • IAMユーザー
      • IAMで管理するユーザーはIAMユーザーと呼び、AWS Directory Service等のディレクトリサービスで管理するユーザーとは異なる
      • IAMユーザーはAWSアカウントの配下に作成され、AWSマネジメントコンソールにアクセスするための独自のID/Passwordを割り当てることができる
      • 一部のIAMユーザーはアプリケーション(DevApp1 など)などで、実際の人間でなくてもかまわない
      • このIAMユーザーの単位でアクセスキーシークレットキーが払い出される
    • フェデレーションユーザー
      • フェデレーションユーザーは、IAMユーザーとは異なり、AWSアカウントに永続的なIDを持っていない
      • フェデレーションユーザーは外部のIDプロバイダIdP)が提供するID/Passwordを指す
        • IDプロバイダにはOpenID ConnectやSAML 2.0等が挙げられる
      • フェデレーションユーザーにロールと呼ばれるエンティティをIAM上で作成・アタッチすることでアクセス・権限のコントロールを行う
  • IAMグループ
    • IAMユーザの集合
  • ロール
    • AWSリソース、フェデレーションユーザーに割り当てる役割
      • あるAWSリソースが自分自身・別のAWSリソースにアクセスするためにはアクセス権限が必要となる
        • 例えば、あるEC2自身が別のAWSリソースにアクセスする場合、そのAWSリソースにアクセスする権限をもったロールである必要がある
    • IAMユーザ・IAMグループとは何の関係もない
  • ポリシー
    • IAMユーザー・IAMグループ・ロールに割り当てるアクセス許可
  • IDプロバイダIdP
    • OpenID Connect、SAML等のAWS外に存在するID/Passwordによる認証サービス提供者
    • IAM上の「IDプロバイダ」にて外部のIDプロバイダと連携設定が可能

ポリシー

IAMユーザ、IAMグループ、ロールにAWSリソースへのアクセス許可を割り当てるにはポリシーを作成する。
ポリシーはJSONで作成されるドキュメントで、1つのポリシーは1つ以上のStatementを持つ。
Statementは以下の情報を持つ。

  • Effect
    • ユーザーがアクセスを要求した際にどのような結果になるかを表す
    • 「Allow」と「Deny」がある
  • Actions
    • ユーザーに許可するアクション
    • Actionsの一覧はこちら
  • Resources
    • Actionの対象として許可するリソース
    • ARNを指定する
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::example_bucket"
  }
}

ARNについては下記参照。 tanakakns.hatenablog.com

ポリシーのその他の要素についてはこちら

ポリシーの種類

ポリシーには以下の種類がある。

  • AWS管理ポリシー
    • AWSがあらかじめ作成し、IAM上で提供してくれているポリシー
  • カスタマー管理ポリシー
    • ユーザーが作成・管理するポリシー
    • AWS管理ポリシーには存在せず、且つ、好きなポリシーを作ることができる
  • インラインポリシー
    • IAMユーザー・IAMグループ・ロール内に作成するポリシー
    • カスタマー管理ポリシーとは異なり、他のIAMユーザー・IAMグループ・ロールへ再利用することはできない

AWS Directory Serviceとの連携

IAMはAWS Directory Serviceと連携してロールを作成することによって、Simple ADなどで管理するID/Passwordを利用することができる。
詳細は以下。
http://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/manage_roles.html