AWS Organizations のアイデンティティベースのポリシーの例 - AWS Organizations

AWS Organizations のアイデンティティベースのポリシーの例

デフォルトでは、ユーザーとロールには Organizations リソースを作成または変更するアクセス許可はありません。また、AWS Management Console、AWS Command Line Interface (AWS CLI)、または AWS API を使用してタスクを実行することもできません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。その後、管理者はロールに IAM ポリシーを追加し、ユーザーはロールを引き受けることができます。

これらサンプルの JSON ポリシードキュメントを使用して、IAM アイデンティティベースのポリシーを作成する方法については、「IAM ユーザーガイド」の「IAM ポリシーを作成する (コンソール)」を参照してください。

Organizations が定義するアクションとリソースタイプ (リソースタイプごとの ARN の形式を含む) の詳細については、「Service Authorization Reference」の「Actions, resources, and condition keys for AWS Organizations」を参照してください。

ポリシーのベストプラクティス

ID ベースのポリシーは、あるユーザーがアカウント内で Organizations リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションを実行すると、AWS アカウント に料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:

  • AWS マネージドポリシーを使用して開始し、最小特権の許可に移行する – ユーザーとワークロードへの許可の付与を開始するには、多くの一般的なユースケースのために許可を付与する AWS マネージドポリシーを使用します。これらは AWS アカウントで使用できます。ユースケースに応じた AWS カスタマー管理ポリシーを定義することで、許可をさらに減らすことをお勧めします。詳細については、「IAM ユーザーガイド」の「AWSマネージドポリシー」または「ジョブ機能の AWS マネージドポリシー」を参照してください。

  • 最小特権を適用する – IAM ポリシーで許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、IAM ユーザーガイドIAM でのポリシーとアクセス許可を参照してください。

  • IAM ポリシーで条件を使用してアクセスをさらに制限する - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。また、AWS CloudFormation などの特定の AWS のサービス を介して使用する場合、条件を使用してサービスアクションへのアクセスを許可することもできます。詳細については、「IAM ユーザーガイド」の [IAM JSON policy elements: Condition] (IAM JSON ポリシー要素:条件) を参照してください。

  • IAM Access Analyzer を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する - IAM Access Analyzer は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、「IAM ユーザーガイド」の「IAM Access Analyzer でポリシーを検証する」を参照してください。

  • 多要素認証 (MFA) を要求する – AWS アカウント で IAM ユーザーまたはルートユーザーを要求するシナリオがある場合は、セキュリティを強化するために MFA をオンにします。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、「IAM ユーザーガイド」の「MFA を使用した安全な API アクセス」を参照してください。

IAM でのベストプラクティスの詳細については、IAM ユーザーガイドIAM でのセキュリティのベストプラクティスを参照してください。

Organizations コンソールの使用

AWS Organizations コンソールにアクセスするには、最小限の許可セットが必要です。これらのアクセス許可により、AWS アカウントの Organizations リソースの詳細をリスト化し表示することができます。最小限必要なアクセス許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) ではコンソールが意図したとおりに機能しません。

AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソール権限を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスを許可します。

ユーザーとロールが引き続き Organizations コンソールを使用できるようにするには、エンティティに Organizations AWSOrganizationsFullAccess または AWSOrganizationsReadOnlyAccess の AWS 管理ポリシーもアタッチします。詳細については、IAM ユーザーガイドユーザーへの許可の追加を参照してください。

自分の権限の表示をユーザーに許可する

この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI か AWS API を使用してプログラム的に、このアクションを完了する権限が含まれています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

完全な管理者権限をユーザーに付与する

組織の IAM ユーザーに、完全な AWS Organizations 管理者権限を付与する IAM ポリシーを作成できます。これを行うには、IAM コンソールの JSON ポリシーエディタを使用します。

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

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

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

  3. ページの上部で、[ポリシーを作成] を選択します。

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

  5. 次の JSON ポリシードキュメントを入力します。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "organizations:*", "Resource": "*" } }
  6. [次へ] をクリックします。

    注記

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

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

  8. [ポリシーの作成] をクリックして、新しいポリシーを保存します。

IAM ポリシーの作成の詳細については、「IAM ユーザーガイド」の「IAM ポリシーを作成する」を参照してください。

制限付きのアクセス許可をアクションごとに付与する

完全なアクセス許可ではなく制限されたアクセス許可を付与する場合は、IAM アクセス許可ポリシーの Action 要素で許可する個々のアクセス許可をリストするポリシーを作成できます。次の例に示すように、ワイルドカード (*) 文字を使用して Describe* および List* のアクセス権限のみを付与することができます。この方法では通常、読み取り専用アクセスが組織に付与されます。

注記

サービスコントロールポリシー (SCP) では、Action 要素のワイルドカード (*) 文字は、ポリシー自体、または文字列の末尾にのみ使用できます。文字列の先頭または中間には表示されません。そのため、"servicename:action*" は有効ですが、"servicename:*action""servicename:some*action" はいずれも、SCP で無効です。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "organizations:Describe*", "organizations:List*" ], "Resource": "*" } }

IAM ポリシーで割り当てることが可能なアクセス許可すべてのリストについては、「Service Authorization Reference」の「Actions defined by AWS Organizations」を参照してください。

特定のリソースへのアクセス許可の付与

特定のアクションへのアクセスの制限に加えて、組織内の特定のエンティティへのアクセスを制限できます。前のセクションの例の Resource 要素は、両方ワイルドカード文字 (*) を指定します。つまり、「アクションがアクセスできる任意のリソース」を意味します。代わりに、「*」をアクセスを許可する特定のエンティティの Amazon リソースネーム (ARN) で置き換えることができます。

例: 単一の OU にアクセス許可を付与する

次のポリシーの最初のステートメントは、IAM ユーザーに組織全体への読み取りアクセスを許可していますが、2 番目のステートメントでは、ユーザーは指定された単一の組織単位 (OU) 内でのみ AWS Organizations 管理アクションの実行が許可されます。これは、子 OU には適用されません。請求へのアクセスは付与されません。ただし、OU 内の AWS アカウント への管理アクセスはできません。指定された OU 内のアカウントで AWS Organizations オペレーションを実行するためのアクセス許可のみが付与されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "organizations:Describe*", "organizations:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "organizations:*", "Resource": "arn:aws:organizations::<masterAccountId>:ou/o-<organizationId>/ou-<organizationalUnitId>" } ] }

OU と組織の ID は AWS Organizations コンソールから取得するか、または List* API を呼び出して取得します。このポリシーを適用されたユーザーまたはグループは、OU に直接含まれるエンティティに対して任意のアクション ("organizations:*") を実行できます。OU は Amazon リソースネーム (ARN) によって識別されます。

ARN に関するその他リソースについては、「Service Authorization Reference」の「Resources types defined by AWS Organizations」を参照してください。

制限付きサービスプリンシパルに信頼されたアクセスを有効にするための権限を付与する

ポリシーステートメントの Condition 要素を使用して、ポリシーステートメントの一致をさらに制限することができます。

例: 特定した 1 つのサービスに信頼されたアクセスを有効にするための権限を付与する

次のステートメントは、特定したサービスのみに信頼されたアクセスを有効にするための制限方法を示しています。AWS IAM Identity Center のものではなく、別のサービスプリンシパルをユーザーが使用して API を呼び出す場合、このポリシーは一致せずリクエストが拒否されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "organizations:EnableAWSServiceAccess", "Resource": "*", "Condition": { "StringEquals" : { "organizations:ServicePrincipal" : "sso.amazonaws.com" } } } ] }

ARN に関するその他リソースについては、「Service Authorization Reference」の「Resources types defined by AWS Organizations」を参照してください。