Amazon DynamoDB の Identity and Access Management
AWS Identity and Access Management (IAM) は管理者が AWS リソースへのアクセスを安全に制御するために役立つ AWS のサービスです。IAM 管理者は、誰が認証 (サインイン) され、DynamoDB リソースを使用する認可 を受ける (アクセス許可がある) ことができるかを管理します。IAM は、追加費用なしで使用できる AWS のサービス です。
トピック
対象者
AWS Identity and Access Management (IAM) の使用方法は、ロールによって異なります。
-
サービスユーザー - 機能にアクセスできない場合は、管理者にアクセス許可をリクエストします (「Amazon DynamoDB アイデンティティとアクセスのトラブルシューティング」を参照)
-
サービス管理者 - ユーザーアクセスを決定し、アクセス許可リクエストを送信します (「Amazon DynamoDB で IAM が機能する仕組み」を参照)
-
IAM 管理者 - アクセスを管理するポリシーを記述します (「Amazon DynamoDB のアイデンティティベースのポリシーの例」を参照)
アイデンティティによる認証
認証とは、アイデンティティ認証情報を使用して AWS にサインインする方法です。ユーザーは、AWS アカウントのルートユーザー、IAM ユーザーとして、または IAM ロールを担うことによって認証される必要があります。
AWS IAM Identity Center (IAM アイデンティティセンター)、シングルサインオン認証、Google/Facebook 認証情報などの ID ソースからの認証情報を使用して、フェデレーション ID としてサインインできます。サインインの詳細については、「AWS サインインユーザーガイド」の「AWS アカウントへのサインイン方法」を参照してください。
プログラムによるアクセスの場合は、AWS が SDK と CLI を提供し、リクエストが暗号で署名されます。詳細については、「IAM ユーザーガイド」の「API リクエストに対する AWS Signature Version 4」を参照してください。
AWS アカウント のルートユーザー
AWS アカウント を作成する際は、すべてのAWS のサービスとリソースに対する完全なアクセス権を持つ、AWS アカウント ルートユーザーと呼ばれる 1 つのサインイン ID を使用して開始します。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザー認証情報を必要とするタスクについては、「IAM ユーザーガイド」の「ルートユーザー認証情報が必要なタスク」を参照してください。
フェデレーテッドアイデンティティ
ベストプラクティスでは、人間のユーザーが一時的な認証情報を使用して AWS のサービス にアクセスする際、アイデンティティプロバイダーとのフェデレーションを使用することが求められます。
フェデレーティッド ID は、エンタープライズディレクトリ、ウェブ ID プロバイダー、または ID ソースの認証情報を使用して AWS のサービス にアクセスする Directory Service からのユーザーです。フェデレーティッド ID は、一時的な認証情報を提供するロールを担います。
一元化されたアクセス管理の場合は、AWS IAM Identity Center をお勧めします。詳細については、「AWS IAM Identity Center ユーザーガイド」の「IAM アイデンティティセンターとは」を参照してください。
IAM ユーザーとグループ
IAM ユーザー は、1 人のユーザーまたは 1 つのアプリケーションに対して特定のアクセス許可を持つ ID です。長期認証情報を持つ IAM ユーザーの代わりに、一時的な認証情報を使用することをお勧めします。詳細については、IAM ユーザーガイド の 人間のユーザーが一時的な認証情報を使用して AWS にアクセスするにはID プロバイダーとのフェデレーションの使用が必要です を参照してください。
IAM グループは、IAM ユーザーのコレクションを指定し、大規模なユーザーセットに対するアクセス許可の管理を容易にします。詳細については、「IAM ユーザーガイド」の「IAM ユーザーに関するユースケース」を参照してください。
IAM ロール
IAM ロールは、一時的な認証情報を提供する特定のアクセス許可を持つ ID です。ユーザーから IAM ロール (コンソール) に切り替えるか、AWS CLI または AWS API オペレーションを呼び出すことで、ロールを担うことができます。詳細については、IAM ユーザーガイド のロールを引き受けることができない を参照してください。
IAM ロールは、フェデレーションユーザーアクセス、一時的な IAM ユーザーアクセス許可、クロスアカウントアクセス、クロスサービスアクセス、および Amazon EC2 で実行されているアプリケーションに役立ちます。詳細については、IAM ユーザーガイド の IAM でのクロスアカウントリソースアクセス を参照してください。
ポリシーを使用したアクセス権の管理
AWS でアクセスを制御するには、ポリシーを作成して AWS ID またはリソースにアタッチします。ポリシーは ID やリソースに関連付けられると、アクセス許可を定義します。AWS は、プリンシパルがリクエストを行う際に、それらのポリシーを評価します。大半のポリシーは JSON ドキュメントとして AWS に保存されます。JSON ポリシードキュメントの詳細については、「IAM ユーザーガイド」の「JSON ポリシー概要」を参照してください。
管理者はポリシーを使用して、どのプリンシパルがどのリソースに対してどの条件でアクションを実行できるかを定義することで、誰が何にアクセスできるかを指定します。
デフォルトでは、ユーザーやロールにアクセス許可はありません。IAM 管理者は IAM ポリシーを作成し、それらをユーザーが担うことができるロールに追加します。IAM ポリシーは、オペレーションの実行方法を問わずアクセス許可を定義します。
アイデンティティベースのポリシー
ID ベースのポリシーは、ID (ユーザー、グループ、またはロール) にアタッチする JSON アクセス許可ポリシードキュメントです。これらのポリシーは、ID がどういう条件で、どのリソースに、どんなアクションを実行できるかを制御します。アイデンティティベースポリシーの作成方法については、IAM ユーザーガイド の カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する を参照してください。
ID ベースのポリシーは、インラインポリシー (単一の ID に直接埋め込む) または 管理ポリシー (複数の ID にアタッチされるスタンドアロンポリシー) にすることができます。管理ポリシーとインラインポリシーのいずれかを選択する方法については、「IAM ユーザーガイド」の「管理ポリシーとインラインポリシーのいずれかを選択する」を参照してください。
リソースベースのポリシー
リソースベースのポリシーは、リソースにアタッチする JSON ポリシードキュメントです。例としては、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーなどがあります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスをコントロールできます。リソースベースのポリシーで、プリンシパルを指定する 必要があります。
リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーで IAM の AWS マネージドポリシーを使用することはできません。
その他のポリシータイプ
AWS は、より一般的なポリシータイプで付与された最大のアクセス許可を設定できる、追加のポリシータイプをサポートしています。
-
アクセス許可の境界 – ID ベースのポリシーで IAM エンティティに付与できるアクセス許可の上限を設定します。詳細については、IAM ユーザーガイド の IAM エンティティのアクセス許可の境界 を参照してください。
-
サービスコントロールポリシー (SCP) – AWS Organizations において組織または組織単位のアクセス許可の上限を指定します。詳細については、AWS Organizations ユーザーガイド の サービスコントロールポリシー を参照してください。
-
リソースコントロールポリシー (RCP) – アカウント内のリソースに利用できるアクセス許可の上限を定義します。詳細については、AWS Organizations ユーザーガイド の リソースコントロールポリシー (RCP) を参照してください。
-
セッションポリシー – ロールまたはフェデレーションユーザーの一時的なセッションを作成する際にパラメータとして渡される高度なポリシーです。詳細については、IAM ユーザーガイド の セッションポリシー を参照してください。
複数のポリシータイプ
1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成されるアクセス許可を理解するのがさらに難しくなります。複数のポリシータイプが関連するとき、リクエストを許可するかどうかを AWS が決定する方法の詳細については、IAM ユーザーガイド の ポリシーの評価ロジック を参照してください。