タグを使用した IAM ユーザーおよびロールへのアクセスとそのユーザーおよびロールのアクセスの制御
次のセクションの情報を使用して、IAM ユーザーおよびロールにアクセスできるユーザーと、ユーザーとロールがアクセスできるリソースを制御します。他の IAM リソースを含め、他の AWS リソースへのアクセスを制御するための一般的な情報と例については、「AWS Identity and Access Management リソースのタグ」を参照してください。
注記
タグキーとタグキー値での大文字と小文字の区別の詳細については、「Case sensitivity」を参照してください。
タグは、IAM リソースにアタッチするか、リクエストで渡すか、リクエストを行うプリンシパルにアタッチすることができます。IAM ユーザーまたはロールは、リソースとプリンシパルの両方にすることができます。たとえば、ユーザーのグループを一覧表示することをユーザーに許可するポリシーを記述できます。このオペレーションは、リクエストを行うユーザー (プリンシパル)に、表示しようとしているユーザーと同じ project=blue
タグがある場合にのみ許可されます。この例では、ユーザーは、同じプロジェクトで作業している限り、自分自身を含む任意のユーザーのグループメンバーシップを表示できます。
タグに基づいてアクセスを制御するには、ポリシーの条件要素でタグ情報を提供します。IAM ポリシーを作成するときは、IAM タグおよび関連付けられたタグ条件キーを使用して、以下のいずれかへのアクセスを制御できます。
-
リソース – ユーザーまたはロールへのアクセスをそれらのタグに基づいて制御します。これを行うには、aws:ResourceTag/
key-name
条件キーを使用して、リソースにアタッチする必要があるタグのキーバリューのペアを指定します。詳細については、「AWS のリソースへのアクセスの制御」を参照してください。 -
リクエスト – IAM リクエストで渡すことができるタグを制御します。そのためには、aws:RequestTag/
key-name
条件キーを使用して、IAM ユーザーまたはロールに対して追加、変更、または削除できるタグを指定します。このキーは、IAM リソースと他の AWS リソースでも同じ方法で使用されます。詳細については、「AWS リクエスト時のアクセスの制御」を参照してください。 -
プリンシパル – 個人の IAM ユーザーまたはロールにアタッチされたタグに基づき、リクエストを行っている個人 (プリンシパル) が実行できる操作を制御します。そのためには、aws:PrincipalTag/
key-name
条件キーを使用して、リクエストを許可する前に、IAM ユーザーまたはロールにアタッチする必要のあるタグを指定します。 -
認可プロセスの一部 – aws:TagKeys 条件キーを使用して、特定のタグキーをリクエストまたはプリンシパルで使用できるかどうかを制御します。この場合、キーバリューは重要ではありません。このキーは、IAM およびその他の AWS サービスでも同様に動作します。ただし、IAM でユーザーにタグを付けると、これにより、プリンシパルが任意のサービスに対してリクエストを行うことができるかどうかも制御されます。詳細については、「タグキーに基づいたアクセスの制御」を参照してください。
ビジュアルエディタまたは JSON を使用するか、既存の管理ポリシーをインポートして、IAM ポリシーを作成できます。詳細については、「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。
注記
IAM ロールを引き受けるとき、またはユーザーをフェデレートするときに、セッションタグを渡すこともできます。これらは、セッションの長さに対してのみ有効です。
IAM プリンシパルへのアクセスの制御
ユーザーのアイデンティティに付けられたタグに基づき、プリンシパルが実行できる操作を制御できます。
この例では、同じプロジェクトで作業している限り、このアカウントのすべてのユーザーが自分自身を含むすべてのユーザーのグループメンバーシップを表示できるようにする ID ベースのポリシーを作成する方法を示しています。このオペレーションは、ユーザーのリソースタグと、プリンシパルのタグのタグキー project
の値が同じである場合にのみ許可されます。このポリシーを使用するには、サンプルポリシーのイタリック体のプレースホルダーテキスト
を独自の情報に置き換えます。次に、ポリシーの作成またはポリシーの編集の手順に従います。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "iam:ListGroupsForUser", "Resource": "arn:aws:iam::111222333444:user/*", "Condition": { "StringEquals": {"aws:ResourceTag/
project
": "${aws:PrincipalTag/project
}"} } }] }
タグキーに基づいたアクセスの制御
IAM ポリシーでタグを使用して、リクエストまたはプリンシパルで特定のタグキーを使用できるかどうかを制御できます。
この例は、temporary
キーを持つタグのみをユーザーから削除できる ID ベースのポリシーを作成する方法を示しています。このポリシーを使用するには、サンプルポリシーのイタリック体のプレースホルダーテキスト
を独自の情報に置き換えます。次に、「ポリシーの作成またはポリシーの編集」の手順に従います。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:UntagUser", "Resource": "*", "Condition": {"ForAllValues:StringEquals": {"aws:TagKeys": ["
temporary
"]}} }] }