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

IAM の詳細を理解します。

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


      IntroToIAM_Diagram

規約

IAM の用語について説明します。

リソース

IAM に保存されているユーザー、ロール、グループ、およびポリシーオブジェクト。AWS サービスと同様に、IAM のリソースを追加、編集、削除することができます。

ID

識別し、グループ化するために使用される IAM リソースオブジェクト。ユーザー、グループ、およびロールなどがあります。

エンティティ

AWS によって認証に使用される IAM リソースオブジェクト。ユーザーやロールなどがあります。ロールは、自分のアカウントまたは別のアカウントの IAM ユーザーに加え、ウェブ ID または SAML を介してフェデレーションされたユーザーが引き受けることができます。

プリンシパル

AWS にサインインし、リクエストするためにエンティティを使用するユーザーまたはアプリケーション。

プリンシパル

プリンシパルは、AWS リソースのアクションまたはオペレーションに対してリクエストできるユーザーまたはアプリケーションを指します。プリンシパルとして、まず AWS アカウントのルートユーザー でサインインします。ベストプラクティスとして、ルートユーザー は日常業務に使用しないでください。代わりに、IAM エンティティ (ユーザーおよびロール) を作成します。フェデレーティッドユーザーやプログラムによるアクセスをサポートし、AWS アカウントへのアクセスをアプリケーションに許可することもできます。

リクエスト

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

  • アクションまたはオペレーション – プリンシパルが実行するアクションまたはオペレーション。AWS マネジメントコンソール ではアクション、AWS CLI や AWS API ではオペレーションです。

  • リソース – アクションまたはオペレーションを実行する対象の AWS リソースオブジェクト。

  • プリンシパル – エンティティ (ユーザーまたはロール) を使用してリクエストを送信するユーザーまたはアプリケーション。プリンシパルに関する情報には、プリンシパルがサインインに使用したエンティティに関連付けられたポリシーが含まれます。

  • 環境データ – IP アドレス、ユーザーエージェント、SSL 有効化ステータス、または時刻に関する情報。

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

AWS は、リクエスト情報をリクエストコンテキスト内に収集し、リクエストの評価と承認に使用します。

認証

AWS にリクエストを送信するには、IAM エンティティを使用して認証されている (AWS にサインインしている) 必要があります。Amazon S3 や AWS STS などの一部のサービスは、匿名ユーザーからの少数のリクエストを許可しますが、これは例外的です。

コンソールからユーザーとして認証するには、ユーザー名とパスワードでサインインする必要があります。API または AWS CLI から認証するには、アクセスキーとシークレットキーを指定する必要があります。また、追加のセキュリティ情報を提供する必要があります。たとえば、AWS では多要素認証 (MFA) を使用してアカウントのセキュリティを高めることを推奨しています。AWS が認証できる IAM エンティティの詳細については、「IAM ユーザー」および「IAM ロール」を参照してください。

承認

また、リクエストを完了する権限がある (許可されている) 必要があります。承認の際に、AWS はリクエストコンテキストの値に基づいて、リクエストに適用されるポリシーを確認します。次に、ポリシーを使用してリクエストの許可または拒否を決定します。通常、ポリシーは JSON ドキュメントとして AWS に保存され、プリンシパルエンティティのアクセス許可を指定します。複数のポリシータイプがリクエストの承認/却下に影響する場合があります。ユーザーに許可したアクセス許可でユーザー自身のアカウント内の AWS リソースにアクセスする場合は、アイデンティティベースのポリシーのみが必要です。リソースベースのポリシーは、一般的にクロスアカウントアクセスを許可するために使用します。他のポリシータイプはアドバンスド機能であり、慎重に使用する必要があります。

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

  • デフォルトでは、すべてのリクエストが拒否されます。(通常、AWS アカウントのルートユーザー 認証情報を使用したアカウントのリソースに対するリクエストは常に許可されます)。

  • アクセス許可ポリシー (アイデンティティベースまたはリソースベース) に明示的な許可が含まれている場合、このデフォルト設定は上書きされます。

  • 組織 SCP、IAM アクセス許可の境界、またはセッションポリシーがある場合、その許可は上書きされます。上記のポリシータイプが 1 つ以上存在する場合は、そのすべてにおいてリクエストが許可されている必要があります。それ以外の場合、リクエストは暗黙的に拒否されます。

  • ポリシー内の明示的な拒否は、すべての許可に優先します。

すべてのタイプのポリシーの評価方法については、「ポリシーの評価論理」を参照してください。別のアカウントでリクエストを作成する必要がある場合は、他のアカウントのポリシーでリソースへのアクセスを許可する必要があります。また、リクエストを作成するために使用する IAM エンティティには、リクエストを許可するアイデンティティベースのポリシーが必要です。

アクションまたはオペレーション

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

  • CreateUser

  • DeleteUser

  • GetUser

  • UpdateUser

オペレーションを実行することをプリンシパルに許可するには、プリンシパルまたは対象のリソースに適用されるポリシーに、必要なアクションを含める必要があります。各サービスでサポートされるアクション、リソースタイプ、および条件キーのリストについては、「」を参照してください。

リソース

AWS で承認されたリクエスト内のオペレーションは、アカウント内の関連リソースに対して実行できます。リソースは、サービス内に存在するオブジェクトです。例として、Amazon EC2 インスタンス、IAM ユーザー、Amazon S3 バケットなどがあります。このサービスは、各リソースで実行できる一連のアクションを定義します。関連していないアクションをリソースに対して実行するリクエストを作成すると、そのリクエストは拒否されます。たとえば、IAM ロールの削除をリクエストしても IAM グループリソースを指定すると、そのリクエストは失敗します。アクションの影響を受けるリソースを示す AWS のサービス別の表については、「」を参照してください。