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

IAM の詳細を理解します。

ユーザーを作成する前に、IAM の機能を理解しておく必要があります。IAM は、アカウントの認証と許可を制御するために必要なインフラストラクチャを提供します。IAM インフラストラクチャには以下のエレメントが含まれています。

IntroToIAM_Diagram

Principal

プリンシパルは、AWS リソースでアクションを実行できるエンティティです。管理者 IAM ユーザーが最初の プリンシパルとなります。時間が経つと、ユーザーとサービスがロールを担うことを許可することができます。フェデレーションユーザーやプログラムによるアクセスをサポートして、アプリケーションが AWS アカウントにアクセスできるようにすることができます。ユーザー、ロール、フェデレーションユーザー、アプリケーションはすべて AWS プリンシパルです。

リクエスト

プリンシパルが AWS マネジメントコンソール、AWS API、または AWS CLI を使用しようとすると、プリンシパルは AWS にリクエストを送信します。リクエストは次の情報を指定します。

  • プリンシパルが実行したいアクション (またはオペレーション)

  • アクションが実行されるリソース

  • リクエストが行われた環境を含むプリンシパル情報

リクエスト情報はいくつかのソースから収集されます。

  • プリンシパル (リクエスタ): 認証データに基づいて識別されます。これには、そのプリンシパルに関連付けられている集約権限が含まれます。

  • 環境データ: IP アドレス、ユーザーエージェント、SSL 有効化ステータス、日時など。この情報はリクエストから特定されます。

  • リソースデータ、またはリクエストされているリソースに関連するデータ。これには、DynamoDB テーブル名、または Amazon EC2 インスタンスのタグといった情報が含まれる場合があります。この情報はリクエストから特定されます。

AWS は、この情報をリクエストコンテキストに集めます。このコンテキストは、リクエストを評価し、認証するために使用されます。

認証

プリンシパルとして、AWS にリクエストを送信するには、認証されていなければなりません (AWS にサインイン)。ただし、Amazon S3 など一部のサービスは、匿名ユーザーからのリクエストを許可します。コンソールから認証するには、ユーザー名とパスワードでサインインする必要があります。API または CLI から認証するには、アクセスキーとシークレットキーを指定する必要があります。また、追加のセキュリティ情報を提供する必要があります。AWS では、Multi-Factor Authentication (MFA) を使用してアカウントのセキュリティを高めることを推奨しています。AWS が認証できる IAM ID の詳細については、、「ID(ユーザー、グループ、ロール)」を参照してください。

承認

許可の間、IAM はリクエストコンテキストからの値に基づいて、一致するポリシーをチェックし、リクエストを許可するか拒否するかを決定します。ポリシーは IAM に JSON ドキュメントとして格納され、プリンシパル (アイデンティティベースのポリシー) またはリソース (リソースベースのポリシー) に対して許可または拒否されるアクセス許可を指定します。

IAM は、リクエストのコンテキストに一致する各ポリシーをチェックします。1 つのポリシーに拒否されたアクションが含まれている場合、IAM はリクエスト全体を拒否し、評価を停止します。このプロセスは明示的な拒否と呼ばれています。リクエストはデフォルトで拒否されているため、IAM はリクエストのすべての部分が一致するポリシーによって許可されている場合にのみリクエストを許可します。評価論理は以下のルールに基づきます。

  • デフォルトでは、すべてのリクエストが拒否されます。

  • 明示的な許可はこのデフォルトに優先します。

  • 明示的な拒否はすべての許可に優先します。

注記

デフォルトでは、AWS アカウントのルートユーザー のみが、そのアカウントのすべてのリソースにアクセスできます。したがって、ルートユーザー としてサインインしていない場合は、ポリシーによって付与されたアクセス許可が必要です。

アクション

リクエストが認証され承認された後で、AWS はリクエストのアクションを承認します。アクションはサービスによって定義され、リソースの表示、作成、編集、削除など、リソースに対して実行できる処理です。たとえば、IAM は、ユーザーリソースに対して、以下のアクションを含む約 40 のアクションをサポートします。

  • CreateUser

  • DeleteUser

  • GetUser

  • UpdateUser

プリンシパルがアクションを実行できるようにするには、プリンシパルまたは影響を受けるリソースに適用されるポリシーに必要なアクションを含める必要があります。

リソース

AWS がリクエスト内のアクションを承認すると、それらのアクションはアカウント内の関連リソースで実行できるようになります。リソースは、サービス内に存在するエンティティです。例として、Amazon EC2 インスタンス、IAM ユーザー、Amazon S3 バケットなどがあります。このサービスは、各リソースで実行できる一連のアクションを定義します。関連していないアクションをリソースに対して実行するリクエストを作成すると、そのリクエストは拒否されます。たとえば、IAM ロールの削除をリクエストしても IAM グループリソースを指定すると、そのリクエストは失敗します。

IAM で ID ベースのポリシーを使用してアクセス許可を指定すると、同じアカウント内のリソースにアクセスするためのアクセス許可が提供されます。別のアカウントでリクエストする必要がある場合、そのアカウントのリソースには、アカウントからのアクセスを許可するアタッチされたリソースベースのポリシーが必要です。それ以外の場合は、必要なアクセス許可でそのアカウント内のロールを引き受ける必要があります。クロスアカウントのアクセス許可の詳細については、「AWS アカウント全体にわたるアクセス権限の付与」を参照してください。