AWS Identity and Access Management
ユーザーガイド

ビジネスユースケース

IAM の簡単なビジネスユースケースを紹介します。お客様のユーザーが持っている AWS アカウントをコントロールするサービスを実装できる基本的な方法を解説します。ユースケースでは、お客様が求めている結果を得るために IAM API を使用する方法を、一般的に説明しています。

このユースケースでは、Example Corp という架空の企業が IAM を使用する典型的な 2 つの方法を検討します。最初のシナリオでは、Amazon Elastic Compute Cloud (Amazon EC2) を取り上げます。2 つ目のシナリオでは、Amazon Simple Storage Service (Amazon S3) を取り上げます。

IAM と AWS の他のサービスとの連携の詳細については、「IAM と連携する AWS のサービス」を参照してください。

Example Corp の初期設定

John は Example Corp の創立者です。業務を開始するにあたって、まず自分の AWS アカウントを作成して AWS 製品を使用します。そして、開発者、管理者、テスター、マネージャー、そしてシステム管理者として働く従業員を雇います。

John は AWS マネジメントコンソール で AWS アカウントのルートユーザー 認証情報を使用して、本人用として John という名前のユーザーと Admins という名前のグループを作成します。AWS 管理ポリシー (AdministratorAccess) を使用して、AWS アカウントの全リソースに対するすべてのアクションを実行するためのアクセス許可を Admins グループに付与します。次に、John というユーザーを管理者グループに追加します。自身で管理者グループと IAM ユーザーを作成し、ユーザーを管理者グループに追加するの詳細な手順については、「最初の IAM 管理者のユーザーおよびグループの作成」を参照してください。

この時点で、John は AWS の操作で ルートユーザー の認証情報を使用する代わりに本人のユーザー認証情報を使用することができます。

John は AllUsers というグループを作成し、アカウント全体のアクセス許可を AWS アカウントのすべてのユーザーに簡単に適用できるようにします。そして、自分自身をグループに追加します。続いて、Developers グループ、Testers グループ、Managers グループ、SysAdmins グループを作成します。各従業員用ユーザーを作成し、各グループに割り当てます。さらに全ユーザーを AllUsers グループに追加します。グループ作成の詳細については、「IAM グループの作成」を参照してください。ユーザー作成の詳細については、「AWS アカウントでの IAM ユーザーの作成」を参照してください。グループへのユーザーの追加については、「IAM グループの管理」を参照してください。

Amazon EC2 による IAM のユースケース

一般的に、Example Corp のような会社は IAM を使用して Amazon EC2 などのサービスとやり取りします。ユースケースの当該部分を理解するには、Amazon EC2 の基本的な理解が必要となります。Amazon EC2 の詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」を参照してください。

グループ用 Amazon EC2 アクセス許可

「境界」制御を提供するため、John は AllUsers グループにポリシーをアタッチします。このポリシーは、元の IP アドレスが Example Corp の企業ネットワークの外部にある場合、ユーザーからの AWS 要求を拒否します。

Example Corp では、グループごとに異なるアクセス許可が必要です。

  • System Administrators – AMI、インスタンス、スナップショット、ボリューム、セキュリティグループなどの作成および管理のアクセス許可が必要です。John はグループのメンバーがすべての Amazon EC2 アクションを使用できるように許可するポリシーを SysAdmins グループにアタッチします。

  • Developers – インスタンスを使用する機能のみが必要です。従って John は、DescribeInstancesRunInstancesStopInstancesStartInstances および TerminateInstances の呼び出し許可を開発者に与えるため、Developers グループにポリシーをアタッチします。

    注記

    Amazon EC2 は SSH キー、Windows パスワードおよびセキュリティグループを使用して、特定の Amazon EC2 インスタンスのオペレーティングシステムへのアクセス許可を持つユーザーをコントロールします。IAM システムには、特定のインスタンスのオペレーティングシステムへのアクセスを許可または拒否するメソッドは存在しません。

  • Managers – 現在使用可能な Amazon EC2 リソースのリストに含まれているものを除き、いずれの Amazon EC2 アクションも実行することはできません。そのため、John はマネージャーのみが Amazon EC2 の「Describe」 API オペレーションを呼び出せるように許可するポリシーを Managers グループにアタッチします。

これらのポリシーの記述例については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「IAM アイデンティティベースのポリシーの例」および「AWS Identity and Access Management の使用」を参照してください。

ユーザーのロール変更

ある時点において、開発者の 1 人である Paulo のロールがマネージャーに変更したとします。John は、Paulo を Developers グループから Managers グループに移行します。これで Paulo は Managers グループに所属することになり、Paulo が Amazon EC2 インスタンスについて行使できる権限は限定されます。Don はインスタンスの起動や開始をすることができません。また Don がインスタンスを起動または開始させた人物だったとしても、既存のインスタンスの停止や終了をすることができません。Don は、Example Corp のユーザーが起動するインスタンスを表示することのみできます。

Amazon S3 による IAM のユースケース

Example Corp のような会社では、IAM と Amazon S3 も使用するのが一般的です。John は example_bucket という会社用の Amazon S3 バケットを作成しました。

その他のユーザーおよびグループの作成

Zhang と Mary は社員として会社のバケットに独自のデータを作成する必要があります。また、すべての開発者が作業する共有データを読み取りや書き込みをする必要があります。これを可能にするため、John は次の図のように Amazon S3 キープレフィックススキームを使用して「example_bucket」のデータを論理的に配置します。

/example_bucket /home /zhang /mary /share /developers /managers

John は、マスターの /example_bucket を、各社員用の一連のホームディレクトリと、開発者グループおよびマネージャーグループ用の共有エリアに分割します。

そして、John はユーザーおよびグループにアクセス許可を割り当てるための一連のポリシーを作成します。

  • Zhang のホームディレクトリアクセス – John は、Amazon S3 キープレフィックス /example_bucket/home/Zhang/ の付いたすべてのオブジェクトの読み取り、書き込み、一覧表示を許可するポリシーを Zhang にアタッチします。

  • Mary のホームディレクトリアクセス – John は、Amazon S3 キープレフィックス /example_bucket/home/mary/ の付いたすべてのオブジェクトの読み取り、書き込み、一覧表示を許可するポリシーを Mary にアタッチします。

  • Developers グループの共有ディレクトリアクセス – John は、/example_bucket/share/developers/ 内のすべてのオブジェクトの読み取り、書き込み、一覧表示を開発者に許可するポリシーをこのグループにアタッチします。

  • Managers グループの共有ディレクトリアクセス – John は、/example_bucket/share/managers/ 内のオブジェクトの読み取り、書き込み、一覧表示をマネージャーに許可するポリシーをこのグループにアタッチします。

注記

Amazon S3 はバケットまたはオブジェクトを作成するユーザーに、そのバケットまたはオブジェクトに対してその他のアクションを実行するアクセス許可を自動的に付与することはありません。したがって、IAM ポリシーでは、作成する Amazon S3 リソースを使用する明示的なアクセス許可をユーザーに付与する必要があります。

これらのポリシーの例については、Amazon Simple Storage Service 開発者ガイドの「アクセスコントロール」を参照してください。ランタイムでのポリシーの評価方法の詳細については、「ポリシーの評価論理」を参照してください。

ユーザーのロール変更

ある時点において、開発者の 1 人である Zhang のロールがマネージャーに変更したとします。彼は、share/developers ディレクトリ内のドキュメントにアクセスする必要がなくなったとみなされます。John (管理者) は、Zhang を Managers グループから Developers グループへ移行します。簡単な再割り当てをするだけで、Zhang には自動的に Managers グループへのすべてのアクセス許可が与えられますが、share/developers ディレクトリ内のデータにはアクセスできなくなります。

サードパーティービジネスとの統合

組織は、頻繁に提携会社、コンサルタント、請負業者と組んで仕事をすることがあります。Example Corp は Widget Company と提携しています。Widget Company には Example Corp の使用しているバケットにデータを入力する Shirley という社員がいます。John は、WidgetCo というグループと Shirley というユーザーを作成し、WidgetCo グループに Shirley を追加します。また、John は Shirley 用に example_partner_bucket という特別なバケットも作成します。

John が、パートナーの Widget Company に提供するために、既存のポリシーの更新または新規ポリシーの追加を行います。たとえば、John は WidgetCo グループのメンバーに対し、書き込み以外のいかなるアクションも拒否するという新規ポリシーを作成することができます。このポリシーは、広範囲にわたる一連の Amazon S3 アクションへのアクセス許可をすべてのユーザーに与えるような広義のポリシーが存在する場合にのみ必要となります。