IAM ポリシーの作成 (コンソール) - AWS Identity and Access Management

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

ポリシー は、ID またはリソースにアタッチされたときに、そのアクセス許可を定義するエンティティです。AWS Management Console を使用して、IAM でカスタマー管理ポリシーを作成できます。カスタマー管理ポリシーは、独自の AWS アカウント で管理するスタンドアロンポリシーです。その後、ポリシーを AWS アカウント のアイデンティティ (ユーザー、グループ、またはロール) にアタッチできます。

IAM ポリシーの作成

AWS Management Console でカスタマー管理ポリシーを作成するには、次のいずれかの方法を使用します。

  • JSON — 発行されたアイデンティティベースのポリシーの例を貼り付けてカスタマイズします。

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

  • インポート — アカウント内から管理ポリシーをインポートしてカスタマイズします。以前に作成した AWS 管理ポリシーまたはカスタマー管理ポリシーをインポートできます。

AWS アカウントの IAM リソースの数とサイズには制限があります。詳細については、「IAM と AWS STSクォータ」を参照してください。

JSON エディターを使用したポリシーの作成

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

JSON エディターでポリシーを作成または編集すると、IAM はポリシー検証を実行し、効果的なポリシーの作成に役立ちます。IAM は JSON 構文エラーを識別します。一方、IAM Access Analyzer は、ポリシーをさらに絞り込むのに役立つアクション可能な推奨事項を含む追加のポリシーチェックを提供します。

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

JSON ポリシーエディタを使用してポリシーを作成するには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. [Create policy] (ポリシーを作成) を選択します。

  4. [ポリシーエディタ] セクションで、[JSON] オプションを選択します。

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

  6. ポリシーの検証中に生成されたセキュリティ警告、エラー、または一般的な警告を解決してから、[Next] (次へ) を選択します。

    注記

    いつでも [Visual] と [JSON] エディタオプションを切り替えることができます。ただし、[Visual] エディタで [] に変更または選択した場合、IAM はポリシーを再構成して visual エディタに合わせて最適化することがあります。詳細については、「ポリシーの再構成」を参照してください。

  7. (オプション)AWS Management Console でポリシーを作成または編集するときに、AWS CloudFormation テンプレートで使用できる JSON または YAML ポリシーテンプレートを生成できます。

    これを行うには、ポリシーエディタで [アクション] を選択し、次に [CloudFormation テンプレートを生成] を選択します。AWS CloudFormation の詳細については、AWS CloudFormation ユーザーガイドの「AWS Identity and Access Management リソースタイプリファレンス」を参照してください。

  8. ポリシーにアクセス権限を追加し終えたら、[次へ] を選択します。

  9. [確認と作成] ページで、作成するポリシーの [ポリシー名] と [説明] (オプション) を入力します。[このポリシーで定義されているアクセス許可] を確認して、ポリシーによって付与されたアクセス許可を確認します。

  10. (オプション) タグをキー - 値のペアとしてアタッチして、メタデータをポリシーに追加します。IAM におけるタグの使用の詳細については、「IAM リソースのタグ付け」を参照してください。

  11. [Create Policy] (ポリシーの作成) をクリックして、新しいポリシーを保存します。

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

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

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

ビジュアルエディタを使用してポリシーを作成するには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. [Create policy] (ポリシーを作成) を選択します。

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

  5. [許可されるアクション] で、ポリシーに追加するアクションを選択します。アクションは次の方法で選択できます。

    • すべてのアクションのチェックボックスをオンにします。

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

    • [アクセスレベル] グループの 1 つを選択して、アクセスレベルのすべてのアクション ([読み取り]、[書き込み]、または [リスト] など) を選択します。

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

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

  6. [リソース] では、前のステップで選択したサービスとアクションが特定のリソースの選択をサポートしていない場合は、すべてのリソースが許可され、このセクションを編集することはできません。

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

    リソースは次の方法で指定できます。

    • [ARN を追加] を選択して、それらの Amazon リソースネーム (ARN) 別にリソースを指定します。ビジュアル ARN エディタを使用するか、ARN を手動でリストすることができます。ARN 構文の詳細については、「AWS 全般のリファレンス Guide」の「Amazon リソースネーム (ARN)」を参照してください。ポリシーの Resource 要素で ARN を使用する方法については、「IAM JSON ポリシー要素Resource」を参照してください。

    • リソースの横にある [このアカウント内のすべて] を選択して、そのタイプのすべてのリソースにアクセス許可を付与します。

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

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

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

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

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

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

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

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

    注記

    いつでも [Visual] と [JSON] エディタオプションを切り替えることができます。ただし、[Visual] エディタで [] に変更または選択した場合、IAM はポリシーを再構成して visual エディタに合わせて最適化することがあります。詳細については、「ポリシーの再構成」を参照してください。

  9. (オプション)AWS Management Console でポリシーを作成または編集するときに、AWS CloudFormation テンプレートで使用できる JSON または YAML ポリシーテンプレートを生成できます。

    これを行うには、ポリシーエディタで [アクション] を選択し、次に [CloudFormation テンプレートを生成] を選択します。AWS CloudFormation の詳細については、AWS CloudFormation ユーザーガイドの「AWS Identity and Access Management リソースタイプリファレンス」を参照してください。

  10. ポリシーにアクセス権限を追加し終えたら、[次へ] を選択します。

  11. [確認と作成] ページで、作成するポリシーの [ポリシー名] と [説明] (オプション) を入力します。[このポリシーで定義されているアクセス許可] を確認し、意図したアクセス許可を付与したことを確認します。

  12. (オプション) タグをキー - 値のペアとしてアタッチして、メタデータをポリシーに追加します。IAM におけるタグの使用の詳細については、「IAM リソースのタグ付け」を参照してください。

  13. [Create Policy] (ポリシーの作成) をクリックして、新しいポリシーを保存します。

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

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

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

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

ビジュアルエディタで既存の管理ポリシーをインポートするには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. [Create policy] (ポリシーを作成) を選択します。

  4. [ポリシーエディタ] で [Visual] を選択し、ページの右側で [アクション]、[ポリシーをインポート] と選択します。

  5. [Iポリシーをインポート] ウィンドウで、新しいポリシーに含めるポリシーと最もよく一致する管理ポリシーを選択します。上部の検索ボックスを使用して、ポリシーのリストの結果を制限することができます。

  6. [ポリシーをインポート] を選択します。

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

  7. ビジュアルエディタを使用して、ポリシーをカスタマイズする JSON を選択します。続いて、[Next] (次へ) を選択します。

    注記

    いつでも [Visual] と [JSON] エディタオプションを切り替えることができます。ただし、[Visual] エディタで [] に変更または選択した場合、IAM はポリシーを再構成して visual エディタに合わせて最適化することがあります。詳細については、「ポリシーの再構成」を参照してください。

  8. [確認と作成] ページで、作成するポリシーの [ポリシー名] と [説明] (オプション) を入力します。これらの設定は後で編集できません。 [このポリシーで定義されているアクセス許可] を確認し、[ポリシーを作成] を選択して作業を保存します。

[JSON] エディタで既存の管理ポリシーをインポートするには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. [Create policy] (ポリシーを作成) を選択します。

  4. [ポリシーエディタ] セクションで [JSON] オプションを選択し、ページの右側で [アクション]、[ポリシーをインポート] と選択します。

  5. [Iポリシーをインポート] ウィンドウで、新しいポリシーに含めるポリシーと最もよく一致する管理ポリシーを選択します。上部の検索ボックスを使用して、ポリシーのリストの結果を制限することができます。

  6. [ポリシーをインポート] を選択します。

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

  7. JSON でポリシーをカスタマイズします。ポリシーの検証中に生成されたセキュリティ警告、エラー、または一般的な警告を解決してから、[Next] (次へ) を選択します。JSON でポリシーをカスタマイズするか、[Visual editor (ビジュアルエディタ)] を選択します。続いて、[Next] (次へ) を選択します。

    注記

    いつでも [Visual] と [JSON] エディタオプションを切り替えることができます。ただし、[Visual] エディタで [] に変更または選択した場合、IAM はポリシーを再構成して visual エディタに合わせて最適化することがあります。詳細については、「ポリシーの再構成」を参照してください。

  8. [確認と作成] ページで、作成するポリシーの [ポリシー名] と [説明] (オプション) を入力します。これらを後で編集することはできません。 [このポリシーで定義されているアクセス許可] ポリシーを確認し、[ポリシーを作成] を選択して作業を保存します。

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