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

IAM ユーザー、グループ、および認証情報を管理するための権限の委任

AWS アカウントのルートユーザー認証情報を使用してサインインしている場合、IAM ユーザーまたはグループの管理や、これらのユーザーやグループの認証情報の管理に制限はありません。ただし、IAM ユーザーには、ユーザーを管理したり、自分や他の IAM ユーザーの認証情報を管理したりするための権限が明示的に付与されている必要があります。このトピックでは、IAM ユーザーが他のユーザーおよびユーザー認証情報を管理するのに使用できる IAM ポリシーについて説明します。

概要

通常、ユーザー、グループ、および認証情報を管理するために必要な権限は、タスクの API アクションに対応します。例えば、ユーザーを作成するには、ユーザーに iam:CreateUser 権限が必要です(API コマンド: CreateUser)。ユーザーに他の IAM ユーザーを作成する権限を与えるには、そのユーザーに次のようなポリシーをアタッチします。

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:CreateUser", "Resource": "*" } }

ポリシーの Resource エレメントの値は、アクション、およびそのアクションの影響を受ける可能性のあるリソースによって決まります。前述の例のポリシーでは、ユーザーが任意のユーザーを作成することができます(* はすべての文字列に一致するワイルドカードです)。対照的に、ユーザー自身のアクセスキーのみの変更(API アクション CreateAccessKey および UpdateAccessKey)を許可するポリシーには、通常、次の例のように Resource 要素が含まれており、この要素内の ARN には、現在のユーザーの名前に解決する変数が含まれています(ACCOUNT-ID-WITHOUT-HYPHENS は AWS アカウント ID に置き換えてください)。

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:CreateAccessKey", "iam:UpdateAccessKey" ], "Resource": "arn:aws:iam::accountid:user/${aws:username}" } }

前の例では、${aws:username} は現在のユーザーのユーザー名に解決される変数です。ポリシー変数の詳細については、「IAM ポリシー変数の概要」を参照してください。

多くの場合、アクション名にワイルドカード文字(*)を使用すると、特定のタスクに関連するすべてのアクションの権限を容易に付与できます。例えば、ユーザーが任意の IAM アクションを実行することを許可するには、アクションに対して iam:* を使用できます。ユーザーがアクセスキーのみに関連する任意のアクションを実行することを許可するには、ポリシーステートメントの Action エレメントで iam:*AccessKey* を使用できます。これにより、CreateAccessKeyDeleteAccessKeyGetAccessKeyLastUsedListAccessKeys、および UpdateAccessKey の各アクションを実行する権限がユーザーに与えられます(将来、名前に「AccessKey」を含むアクションが IAM に追加された場合、Action エレメントの iam:*AccessKey* を使用していれば、その新しいアクションに対する権限もユーザーに与えられます)。次の例では、自分のアクセスキーに関連するすべてのアクションの実行をユーザーに許可するポリシーを示しています(ACCOUNT-ID-WITHOUT-HYPHENS は AWS アカウント ID に置き換えてください)。

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:*AccessKey*", "Resource": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:user/${aws:username}" } }

一部のタスクには複数のアクションが必要です。たとえば、グループの削除では、まずグループからユーザーを削除し、グループのポリシーをデタッチまたは削除してから、グループを実際に削除する必要があります。ユーザーがグループを削除できるようにする場合は、関連するすべてのアクションの実行権限をそのユーザーに与える必要があります。

AWS マネジメントコンソール で作業するための権限

前の例では、AWS CLI または AWS SDK の使用によるアクションの実行をユーザーに許可するポリシーの例を示しています。ユーザーが AWS マネジメントコンソール を使用してユーザー、グループ、および権限を管理する場合、そのユーザーに追加の権限が必要になります。ユーザーがコンソールを操作すると、コンソールは、ユーザーとグループのリストの取得、ユーザーまたはグループに関連付けられたポリシーの取得、AWS アカウント情報の取得などを行うためのリクエストを IAM に対して発行します。

たとえば、ボブというユーザーがコンソールを使用して自分のアクセスキーを変更する場合、ボブはまず IAM コンソールに移動し、[Users] を選択します。このアクションにより、コンソールは ListUsers リクエストを発行します。ボブに iam:ListUsers アクションの権限がない場合は、コンソールがユーザーのリストの取得を試みたときに、コンソールはアクセスを拒否されます。結果として、ボブは自分の名前やアクセスキーにアクセスできません。ボブに CreateAccessKey アクションと UpdateAccessKey アクションの権限があっても関係ありません。

ユーザー、グループ、認証情報を管理するために AWS マネジメントコンソールで作業する権限をユーザーに与える場合は、ユーザーがコンソールで実行するアクションに対する権限を含める必要があります。これらのアクセス権限をユーザーに付与するために使用できるポリシーの例については、「IAM リソースの管理に関するポリシーの例」を参照してください。