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

IAM ポリシーの作成

ポリシー は、ID またはリソースにアタッチされたときに、そのアクセス許可を定義するエンティティです。ポリシーは JSON ドキュメントとして AWS に保存され、IAM のアイデンティティベースのポリシーとしてプリンシパルにアタッチされます。IAM グループ、ユーザー、ロールなどのプリンシパル (またはアイデンティティ) に、アイデンティティベースのポリシーをアタッチできます。アイデンティティベースのポリシーには、AWS 管理ポリシー、カスタマー管理ポリシー、およびインラインポリシーがあります。

AWS マネジメントコンソール で新しい IAM ポリシーを作成するには、以下のいずれかの方法を使用します。

  • インポート — アカウント内で管理ポリシーをインポートし、ポリシーを編集して特定の要件に合わせてカスタマイズすることができます。管理ポリシーは、AWS 管理ポリシー、または以前に作成したカスタマー管理ポリシーにすることができます。

  • ビジュアルエディタ — ビジュアルエディタで最初から新しいポリシーを構築できます。ビジュアルエディタを使用する場合は、JSON 構文を理解する必要はありません。

  • JSON — [JSON] タブで、JSON 構文を使用してポリシーを作成できます。新しい JSON ポリシードキュメントを入力するか、ポリシー例を貼り付けることができます。

AWS マネジメントコンソール でインラインポリシーを作成することができます。インラインポリシーは、IAM グループ、ユーザー、またはロールに直接作成して埋め込むポリシーです。詳細については、「IAM ID のアクセス許可の追加および削除」を参照してください。AWS 管理ポリシーを作成することはできません。

ポリシーのサイズの制限やその他のクォータについては、「IAM エンティティおよびオブジェクトの制限」を参照してください。

IAM ポリシーの作成 (コンソール)

どの方法でポリシーを作成しても、すべて同じ方法で開始されます。

新しいポリシーの作成を開始するには (コンソール)

  1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

  2. 左側のナビゲーションペインで、[ポリシー] を選択します。

    初めて [ポリシー] を選択する場合には、[管理ポリシーにようこそ] ページが表示されます。[Get Started] を選択します。

  3. [Create policy] を選択します。

  4. ポリシーを作成するには、以下のいずれかの方法を選択します。次に、対応する手順のステップに従います。

既存の管理ポリシーのインポート

新しいポリシーを作成する簡単な方法は、必要なアクセス許可の少なくとも一部を持っているアカウント内の既存の管理ポリシーをインポートすることです。次に、新しい要件に合わせてそのポリシーをカスタマイズできます。

インラインポリシーをインポートすることはできません。管理ポリシーとインラインポリシーの違いについては、「管理ポリシーとインラインポリシー」を参照してください。

ビジュアルエディタで既存の管理ポリシーをインポートするには

  1. IAM ポリシーの作成 (コンソール)」の手順に従って、ポリシーの作成ウィザードを起動します。[Visual editor (ビジュアルエディタ)] タブを選択し、ページの右側で [Import managed policy (管理ポリシーのインポート)] を選択します。

  2. [Import managed policies (管理ポリシーのインポート)] ウィンドウで、新しいポリシーに含めるポリシーと最もよく一致する管理ポリシーを選択します。[フィルタ] メニューを使用するか、最上部の検索ボックスに入力して、ポリシーのリストの結果を制限することができます。

  3. [Import] を選択します。

    インポートされたポリシーは、ポリシーの下部にあるアクセス許可ブロックに追加されます。

  4. ビジュアルエディタを使用して、ポリシーをカスタマイズする JSON を選択します。次に [ポリシーの確認] を選択します。

    注記

    いつでも [Visual editor (ビジュアルエディタ)] タブと [JSON] タブを切り替えることができます。ただし、[Visual editor (ビジュアルエディタ)] タブで [ポリシーの確認] を変更または選択した場合、IAM はポリシーを再構成してビジュアルエディタに合わせて最適化することがあります。詳細については、「ポリシーの再構成」を参照してください。

  5. [確認] ページで、作成するポリシーの [名前] と [説明] (オプション) を入力します。これらの設定は後で編集できません。ポリシーの [概要] を確認し、[ポリシーの作成] を選択して作業を保存します。

[JSON] タブで既存の管理ポリシーをインポートするには

  1. IAM ポリシーの作成 (コンソール)」の手順に従って、ポリシーの作成ウィザードを起動します。[JSON] タブを選択し、ページの右側で [Import managed policy (管理ポリシーのインポート)] を選択します。

  2. [Import managed policies (管理ポリシーのインポート)] ウィンドウで、新しいポリシーに含めるポリシーと最もよく一致する管理ポリシーを選択します。[フィルタ] メニューを使用するか、最上部の検索ボックスに入力して、ポリシーのリストの結果を制限することができます。

  3. [Import] を選択します。

    インポートされたポリシーのステートメントは、JSON ポリシーの最後に追加されます。

  4. JSON でポリシーをカスタマイズするか、[Visual editor (ビジュアルエディタ)] を選択します。次に [ポリシーの確認] を選択します。

    注記

    いつでも [Visual editor (ビジュアルエディタ)] タブと [JSON] タブを切り替えることができます。ただし、[Visual editor (ビジュアルエディタ)] タブで [ポリシーの確認] を変更または選択した場合、IAM はポリシーを再構成してビジュアルエディタに合わせて最適化することがあります。詳細については、「ポリシーの再構成」を参照してください。

  5. [ポリシーの確認] ページで、作成するポリシーの [名前] と [説明] (オプション) を入力します。これらを後で編集することはできません。ポリシーの [概要] を確認し、[ポリシーの作成] を選択して作業を保存します。

ポリシーを作成したら、グループ、ユーザー、またはロールにアタッチできます。詳細については、「IAM ID のアクセス許可の追加および削除」を参照してください。

ビジュアルエディタでのポリシーの作成

IAM コンソールのビジュアルエディタは、JSON 構文を記述することなくポリシーを作成する方法をガイドします。ビジュアルエディタを使用してポリシーを作成する方法の例については、「アイデンティティへのアクセスの制御」を参照してください。

ビジュアルエディタを使用してポリシーを作成するには

  1. IAM ポリシーの作成 (コンソール)」の手順に従って、ポリシーの作成ウィザードを起動します。

  2. [Visual editor (ビジュアルエディタ)] タブで、[Choose a service (サービスの選択)] を選択します。次に、ポリシーに追加する AWS サービスを選択します。上部の検索ボックスを使用して、サービスのリストの結果を制限することができます。ビジュアルエディタのアクセス許可ブロック内で選択できるサービスは 1 つだけです。複数のサービスにアクセス許可を付与するには、[Add additional permissions (さらにアクセス許可を追加する)] を選択して、複数のアクセス許可ブロックを追加します。

  3. [アクションの選択] を選択し、ポリシーに追加するアクションを選択します。ビジュアルエディタに、前の手順で選択したサービスで使用可能なアクションが表示されます。

    アクションは次の方法で選択できます。

    • チェックボックスを使用して、サービスのすべてのアクション、または事前定義されたいずれかの [アクセスレベル] グループのすべてのアクションを選択します。

    • それぞれの [アクセスレベル] グループを展開して、個々のアクションを選択します。

    • [アクションの追加] を選択して特定のアクションを入力するか、ワイルドカード (*) を使用して複数のアクションを指定します。

    デフォルトでは、作成しているポリシーによって選択したアクションが許可されます。その代わりに選択したアクションを拒否するには、[Switch to deny permissions (アクセス許可の拒否に切り替え)] を選択します。IAM はデフォルトでは拒否されるため、ユーザーが必要とするアクションとリソースのみに対するアクセス許可を付与することを、セキュリティのベストプラクティスとしてお勧めします。これは "ホワイトリスト" と呼ばれることもあります。 別のステートメントまたはポリシーによって個別に許可されるアクセス許可を上書きする場合のみ、アクセス許可を拒否する JSONステートメント (「ブラックリスト」) を作成します。これにより、アクセス許可のトラブルシューティングがより困難になる可能性があるため、拒否ステートメントの数は最小限に制限することをお勧めします。

  4. 選択したサービスと前の手順で選択したアクションが特定のリソースの選択をサポートしていない場合は、[All resources (すべてのリソース)] が選択されます。その場合、このセクションを編集することはできません。

    リソースレベルのアクセス許可をサポートする 1 つ以上のアクションを選択した場合、ビジュアルエディタでそれらのリソースが一覧表示されます。[Resources (リソース)] を選択して、ポリシーのリソースを指定できます。

    リソースは次の方法で選択できます。

    • [Add ARN (ARN の追加)] を選択して、リソースの詳細を提供することができます。値を入力する代わりに、[Any (任意)] を選択して、指定した設定の任意の値をアクセス許可に割り当てることもできます。たとえば、Amazon EC2 の Read アクセスレベルグループを選択した場合、ポリシーのアクションは instance リソースタイプをサポートします。リソースの [Region (リージョン)]、[アカウント]、[InstanceId] の各値を指定する必要があります。アカウント ID を指定するが、リージョンとインスタンス ID に [Any (任意)] を選択する場合、ポリシーでアカウントの任意のインスタンスにアクセス許可が付与されます。

    • [Add ARN (ARN の追加)] を選択して、それらの Amazon リソースネーム (ARN) 別にリソースを指定します。ワイルドカード (*) を ARN の任意のフィールドに含めることができます (コロンの各ペアの間)。詳細については、「IAM JSON ポリシーの要素:Resource」を参照してください。

    • リソースセクションの右端にある [Any (任意)] を選択して、特定のタイプのリソースにアクセス許可を付与します。

    • [All resources (すべてのリソース)] を選択し、そのサービスのすべてのリソースを選択します。

  5. (オプション) [リクエスト条件の指定 (オプション)] を選択して、作成するポリシーに条件を追加します。条件によって JSON ポリシーステートメントの効果が制限されます。たとえば、特定の時間範囲内でそのユーザーのリクエストが発生した場合にのみ、ユーザーがリソースに対してアクションを実行できるように指定できます。一般的に使用される条件を使用して、Multi-Factor Authentication(MFA) デバイスでユーザーを認証する必要があるかどうかを制限することもできます。または、リクエストの発行元を特定範囲内の IP アドレスに限定できます。ポリシーの条件で使用できるすべてのコンテキストキーのリストについては、「」を参照してください。

    条件は次の方法で選択できます。

    • 一般的に使用される条件を選択するには、チェックボックスを使用します。

    • 他の条件を指定するには、[条件の追加] を選択します。条件の [条件キー]、[修飾子]、[演算子] を選択し、[] に入力します。複数の値を追加するには、[新しい値を追加] を選択します。値は、論理 "OR" 演算子によって接続されていると見なすことができます。完了したら、[追加] を選択します。

    複数の条件を追加するには、[条件の追加] を選択します。必要に応じて操作を繰り返します。各条件は、この 1 つのビジュアルエディタのアクセス許可ブロックにのみ適用されます。アクセス許可ブロックが一致すると見なされるためには、すべての条件が満たされている必要があります。つまり、論理 "AND" 演算子によって接続される条件を考慮してください。

    Condition 要素の詳細については、「IAM JSON ポリシーリファレンス」の「IAM JSON ポリシーの要素:Condition」を参照してください。

  6. さらにアクセス許可ブロックを追加するには、[Add additional permissions (さらにアクセス許可を追加する)] を選択します。各ブロックに対して、ステップ 2 から 5 を繰り返します。

  7. 完了したら、[ポリシーの確認] を選択します。

    注記

    いつでも [Visual editor (ビジュアルエディタ)] タブと [JSON] タブを切り替えることができます。ただし、[Visual editor (ビジュアルエディタ)] タブで [ポリシーの確認] を変更または選択した場合、IAM はポリシーを再構成してビジュアルエディタに合わせて最適化することがあります。詳細については、「ポリシーの再構成」を参照してください。

  8. [ポリシーの確認] ページで、作成するポリシーの [名前] と [説明] (オプション) を入力します。ポリシー概要を確認して、目的のアクセス許可を付与していることを確認し、[ポリシーの作成] を選択して新しいポリシーを保存します。

ポリシーを作成したら、グループ、ユーザー、またはロールにアタッチできます。詳細については、「IAM ID のアクセス許可の追加および削除」を参照してください。

[JSON] タブでのポリシーの作成

[JSON] タブを選択して、JSON でポリシーを入力または貼り付けることができます。この方法は、アカウントで使用するポリシー例をコピーするのに便利です。または、独自の JSON ポリシードキュメントを JSON エディタに入力することもできます。[JSON] タブを使用してビジュアルエディタと JSON を切り替えて、ビューを比較することもできます。

JSON ポリシードキュメントは 1 つ以上のステートメントで構成されます。各ステートメントには、同じ効果エフェクト (Allow または Deny) を共有するすべてのアクションが含まれ、同じリソースと条件がサポートされている必要があります。1 つのアクションですべてのリソース ("*") を指定する必要があり、別のアクションが特定のリソースの Amazon リソースネーム (ARN) の場合、それらは 2 つの別々の JSON ステートメントになければなりません。IAM ポリシーの一般情報については、「ポリシーとアクセス許可」を参照してください。IAM ポリシー言語については、「IAM JSON ポリシーリファレンス」を参照してください。

JSON ポリシーエディタを使用してポリシーを作成するには

  1. IAM ポリシーの作成 (コンソール)」の手順に従って、ポリシーの作成ウィザードを起動します。

  2. [JSON] タブを選択します。

  3. JSON ポリシードキュメントを入力するか貼り付けます。IAM ポリシー言語の詳細については、「IAM JSON ポリシーリファレンス」を参照してください。

  4. 完了したら、[ポリシーの確認] を選択します。Policy Validator によって、構文エラーがある場合はレポートされます。

    注記

    いつでも [Visual editor (ビジュアルエディタ)] タブと [JSON] タブを切り替えることができます。ただし、[Visual editor (ビジュアルエディタ)] タブで [ポリシーの確認] を変更または選択した場合、IAM はポリシーを再構成してビジュアルエディタに合わせて最適化することがあります。詳細については、「ポリシーの再構成」を参照してください。

  5. [ポリシーの確認] ページで、作成するポリシーの [名前] と [説明] (オプション) を入力します。ポリシーの [概要] を確認して、ポリシーで許可されている権限を確認します。次に [ポリシーの作成] を選択して作業を保存します。

ポリシーを作成したら、グループ、ユーザー、またはロールにアタッチできます。詳細については、「IAM ID のアクセス許可の追加および削除」を参照してください。

IAM ポリシーの作成 (AWS CLI)

AWS Command Line Interface (AWS CLI) を使用して IAM ポリシーまたはインラインポリシーを作成できます。

カスタマー管理ポリシーを作成するには (AWS CLI)

次のコマンドを使用します。

プリンシパルエンティティ (グループ、ユーザー、またはロール) のインラインポリシーを作成するには (AWS CLI)

以下のいずれかのコマンドを使用します。

注記

サービスにリンクされたロールのインラインポリシーは、ロールに依存するサービスにのみ組み込むことができます。サービスでこの機能がサポートされているかどうかについては、そのサービスの AWS ドキュメントを参照してください。

IAM ポリシーの作成 (AWS API)

AWS API を使用して IAM ポリシーまたはインラインポリシーを作成できます。

カスタマー管理ポリシーを作成するには (AWS API)

次のオペレーションを呼び出します。

プリンシパルエンティティ (グループ、ユーザー、またはロール) のインラインポリシーを作成するには (AWS API)

以下のいずれかのオペレーションを呼び出します。

注記

サービスにリンクされたロールのインラインポリシーは、ロールに依存するサービスにのみ組み込むことができます。サービスでこの機能がサポートされているかどうかについては、そのサービスの AWS ドキュメントを参照してください。