1.はじめに

今回はAWS IAMについて詳細をまとめていきます。AWSのサービスの中でも共通的で目立たないマネージドサービスですが、セキュリティ面からみると最も重要といっても過言ではない機能であり、奥が深いため、正確な理解をしていきましょう。

2.IAMとは

まずは公式からの引用です。

AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に管理するためのウェブサービスです。IAM により、誰を認証 (サインイン) し、誰にリソースの使用を承認する (アクセス権限を持たせる) かを制御します。

かいつまむと、「誰」と「権限」を定義するサービスです。多くの場合認証と認可という表現がされます。それらを定義していく機能になります。

ちなみに認証と認可は以下の通り。

  • 認証:確認相手が「誰」であるかを確かめること。
  • 認可:確認相手が「何」をできるかを定めること。

今回は「誰」つまり認証について基本的な事項をまとめていきます。

3.認証

AWSでの認証は多くの機能がありますが、ここではまず以下に示す基本的なものだけを扱います。

IAMユーザ

ルートユーザ

ルートユーザは正しくはIAMで管理するものではありません。AWSアカウントを作成した際に自動的に作られるユーザを指します。

このユーザは以下のような特徴があります。

  • AWSアカウントを作成したEメールアドレスおよびパスワードでログインする
  • すべてのリソースに関してすべての権限を有する
  • IAMで設定する権限設定では制御できない

多くの場合ルートユーザの使用は制限する、またセキュリティを高くする(MFAを適用する)などがベストプラクティスとして挙がっています。

IAMユーザ

IAMユーザはAWSアカウント内で作成するユーザで、このユーザを用いてAWSの各種マネージドサービスなどを利用します。どのサービスや機能を利用できるかは認可で設定します。

基本的には1人1ユーザとするのが望ましいです。

パワーユーザ(IAMユーザ)

IAMユーザの中でも特別扱いされるのがパワーユーザです。正確には「パワーユーザ」という権限を付与したIAMユーザです。

パワーユーザはルートユーザからIAMの操作権限を外したもの、になります。

IAMグループ

IAMグループとはIAMユーザをまとめて管理する機能です。グループにまとめることで、別途まとめます認可(権限)の付与に利用することで運用効率が上がります。

IAMグループは私の経験では会社の部署(経理部、営業部、システム部、など)のような単位でまとめることが多いイメージです。

利用シナリオ

経験談となりますが以下のような使い方をしています。

  • IAMグループとIAMユーザ(パワーユーザ)を作る
    • IAMグループは前述の通り部署ごと、その中で管理者としてパワーユーザを1つ作成
  • 必要に応じて各IAMグループに一般利用者のIAMユーザを作成

部署内での管理についてはパワーユーザを持つIAMユーザに委ね、利用するユーザや権限は別で管理する、といったイメージです。

アクセスキー

IAMユーザとルートユーザではAWS CLIやAWS SDK等にて利用するアクセスキー(ID/シークレットアクセスキー)を発行することが可能です。

4.IAMユーザのベストプラクティス

IAMユーザのベストプラクティスとしては以下の点が語られています。合わせてルートユーザのベストプラクティスをまとめます。

  • ルートユーザのアクセスキーは使用しない
  • 個別のIAMユーザを作成する。(個人個人で作成する)
    • メリット
      認証情報を個別に変更できる
      アクセス許可をいつでも変更、無効化できる
      Amazon CloudTrailログからアクションを追跡できる
  • パスワードは強力なポリシーを設定
  • アクセスキーを共有しない
  • ルートユーザや権限の強いユーザ(パワーユーザなど)にはMFAを有効化する

20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AWS IAM) Part1

まとめ

今回は基本的なIAMの認証で登場するユーザ、グループについてまとめました。これだけでは重要性が見えてきませんが、次回説明予定の認可を加えることでぐっと深みが出てきます。

関連記事