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

ぺーぺーSEのブログ

備忘録・メモ用サイト。

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

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