メニュー
AWS Identity and Access Management
ユーザーガイド

管理ポリシーへのアクセスの制御

管理ポリシーにより、ユーザーは他のユーザーのポリシーと権限を管理する方法を詳細に制御できます。ポリシーを作成、更新、削除する権限を付与するユーザーや、プリンシパルエンティティ(ユーザー、グループ、ロール)をアタッチまたはデタッチする権限を付与するユーザーを個別に制御できます。ユーザーにどのエンティティのどのポリシーのアタッチまたはデタッチを許可するかも制御できます。

一般的なシナリオでは、アカウント管理者にポリシーを作成、更新、削除する権限を付与します。次に、チームリーダーまたはその他の制限付き管理者に、管理対象となるプリンシパルエンティティのポリシーをアタッチおよびデタッチする権限を付与します。

カスタマー管理ポリシーを作成、更新、削除する権限の制御

IAM ポリシーを使用して、AWS アカウントのカスタマー管理ポリシーを作成、更新、削除する権限を制御できます。ポリシーまたはポリシーのバージョンの作成、更新、削除に直接関連する API を以下に示します。

以上の API は、IAM ポリシーを使用して許可または拒否できる(権限を付与できる)アクションに対応しています。

次の例は、ユーザーに AWS アカウントのすべてのカスタマー管理ポリシーの作成、更新(新しいポリシーバージョンの作成)、削除、デフォルトバージョンの設定を許可するポリシーを示しています。このポリシーの例では、ユーザーにポリシーの一覧表示とポリシーの取得も許可しています。

例 すべてのポリシーの作成、更新、削除、一覧表示、取得、デフォルトバージョンの設定を許可するポリシー

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListPolicies", "iam:ListPolicyVersions", "iam:SetDefaultPolicyVersion" ], "Resource": "*" } }

指定した管理ポリシーのみに適用するポリシーを作成して、これらの API の使用を制限することもできます。たとえば、特定のカスタマー管理ポリシーのみを対象にして、ユーザーにデフォルトバージョンの設定とポリシーバージョンの削除を許可することが考えられます。これは、権限を付与するポリシーの Resource 要素にポリシー ARN を指定することで実行できます。

次の例は、パス /TEAM-A/ を含むカスタマー管理ポリシーのみを対象にして、ユーザーにポリシーバージョンの削除とデフォルトバージョンの設定を許可するポリシーを示しています。カスタマー管理ポリシーの ARN はポリシーの Resource 要素で指定します(この例では、ARN にパスとワイルドカードが含まれているため、パス /TEAM-A/ を含むすべてのカスタマー管理ポリシーが該当します)。

カスタマー管理ポリシーの名前にパスを使用する場合の詳細については、「分かりやすい名前とパス」を参照してください。

例 特定のポリシーのみを対象にして、ポリシーバージョンの削除とデフォルトバージョンの設定を許可するポリシー

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:DeletePolicyVersion", "iam:SetDefaultPolicyVersion" ], "Resource": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:policy/TEAM-A/*" } }

管理ポリシーをアタッチおよびデタッチする権限の制御

IAM ポリシーを使用して、ユーザーに特定の管理ポリシーのみの操作を許可することもできます。つまり、ユーザーが他のプリンシパルエンティティに付与することができる権限を制御できます。

プリンシパルエンティティの管理ポリシーのアタッチとデタッチに直接関連する API を以下に示します。

指定した管理ポリシーおよびプリンシパルエンティティのみに適用するポリシーを作成して、これらの API の使用を制限することができます。たとえば、指定した管理ポリシーのみを対象にして、ユーザーに管理ポリシーのアタッチを許可することが考えられます。あるいは、指定したプリンシパルエンティティのみを対象にして、ユーザーに管理ポリシーのアタッチを許可することも考えられます。

以下のポリシー例では、ユーザーに、パス /TEAM-A/ を含むグループとロールのみに対して管理ポリシーのアタッチを許可します。グループとロールの ARN はポリシーの Resource 要素で指定します(この例では、ARN にパスとワイルドカードが含まれているため、パス /TEAM-A/ を含むすべてのグループとロールが該当します)。

例 特定のグループまたはロールのみに対する管理ポリシーのアタッチを許可するポリシー

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:AttachGroupPolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:group/TEAM-A/*", "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/TEAM-A/*" ] } }

前述の例のアクションをさらに制限して、特定のポリシーのみに適用することもできます。つまり、ポリシーに条件を追加することによって、ユーザーが他のプリンシパルエンティティにアタッチして付与することができる権限を制御できます。

次の例では、条件により、アタッチしたポリシーが指定したポリシーのいずれかに一致した場合のみに AttachGroupPolicyAttachRolePolicy の権限を許可します。条件では、アタッチを許可するポリシーを決定するiam:PolicyArn条件キーを使用します。次の例では、前述の例のポリシーを拡張して、パス /TEAM-A/ を含むグループとロールのみに、パス /TEAM-A/ を含む管理ポリシーのみをアタッチすることをユーザーに許可します。

例 特定のグループまたはロールのみに対する、特定の管理ポリシーのみのアタッチを許可するポリシー

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:AttachGroupPolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:group/TEAM-A/*", "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/TEAM-A/*" ], "Condition": {"ArnLike": {"iam:PolicyArn": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:policy/TEAM-A/*"} } } }

管理ポリシーの Amazon リソースネーム (ARN) の指定

特定の管理ポリシーへのアクセスを制御するには、管理ポリシーの Amazon リソースネーム (ARN) を使用します。管理ポリシーの ARN は、場合に応じてポリシーの Resource 要素または Condition 要素で使用します。

以下のセクションでは、それぞれの要素をどのような場合に使用するかを説明します。

Resource 要素を使用して管理ポリシーに影響を与えるアクションへのアクセスを制御する

管理ポリシーに影響を与えるアクションについて、特定の管理ポリシーへのアクセスを制御するには、ポリシーの Resource 要素で管理ポリシーの ARN を指定します。

管理ポリシーに影響を与える IAM アクション(API)を次に示します。

これらのアクションの使用を制限して、指定した管理ポリシーのみに適用することもできます。これは、権限を付与するポリシーの Resource 要素にポリシー ARN を指定することで実行できます。たとえば、カスタマー管理ポリシーの ARN を指定するには、次のようにします。

Copy
"Resource": "arn:aws:iam::123456789012:policy/POLICY-NAME"

ポリシーの Resource 要素で AWS 管理ポリシーの ARN を指定することもできます。AWS 管理ポリシーの ARN では、次の例に示すように、アカウント ID の代わりにポリシー ARN で aws という特別なエイリアスを使用します。

Copy
"Resource": "arn:aws:iam::aws:policy/AmazonEC2FullAccess"

Condition 要素を使用してプリンシパルエンティティ(ユーザー、グループ、ロール)に影響を与えるアクションへのアクセスを制御する

管理ポリシーに関連するアクションがプリンシパルエンティティ(ユーザー、グループ、ロール)に影響を与える場合に、特定の管理ポリシーへのアクセスを制御するには、ポリシーの Condition 要素で管理ポリシーの ARN を指定します。この場合、ポリシーの Resource 要素を使用して、影響を受けるプリンシパルエンティティの ARN を指定します。

管理ポリシーに関連し、プリンシパルエンティティに影響を与える IAM アクション(API)を次に示します。

これらのアクションの使用を制限して、指定した管理ポリシーのみを対象にすることもできます。これは、権限を付与するポリシーの Condition 要素にポリシー ARN を指定することで実行できます。たとえば、カスタマー管理ポリシーの ARN を指定するには、次のようにします。

Copy
"Condition": {"ArnEquals": {"iam:PolicyArn": "arn:aws:iam::123456789012:policy/POLICY-NAME"} }

ポリシーの Condition 要素で AWS 管理ポリシーの ARN を指定することもできます。AWS 管理ポリシーの ARN では、次の例に示すように、アカウント ID の代わりにポリシー ARN で aws という特別なエイリアスを使用します。

Copy
"Condition": {"ArnEquals": {"iam:PolicyArn": "arn:aws:iam::aws:policy/AmazonEC2FullAccess"} }

条件の種類として ArnLike または ArnEquals を使用できます。ArnLike および ArnEquals の詳細については、「ポリシー要素リファレンス」の「条件の種類」セクションの「Amazon リソースネーム (ARN) の条件演算子」を参照してください。