サービスにリンクされたロールの作成 - AWS Identity and Access Management

サービスにリンクされたロールの作成

サービスにリンクされたロールは、AWS のサービスに直接リンクされた一意のタイプの IAM ロールです。サービスにリンクされたロールは、サービスによって事前定義されており、お客様の代わりにサービスから他の AWS サービスを呼び出す必要のあるアクセス権限がすべて含まれています。このリンクされたサービスでも、サービスにリンクされたロールを作成、変更、削除する方法を定義しています。サービスによって、ロールが自動的に作成または削除される場合があります。そのため、ウィザードの一部、またはサービスのプロセスとして、ロールを作成、変更、削除できる場合があります。または、ロールを作成または削除するには、IAM を使用する必要がある場合があります。どの方法を使用するにしても、サービスにリンクされたロールを使用すると、サービスが自動でアクションを完了させるのに、 アクセス許可を手動で追加する必要がないため、サービスの設定プロセスが簡単になります。

注記

サービスロールは、サービスにリンクされたロールとは異なることに注意してください。サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービスにアクセス許可を委任するロールの作成」を参照してください。サービスにリンクされたロールは、AWS のサービスにリンクされているサービスロールの一種です。サービスがロールを引き受け、ユーザーに代わってアクションを実行できるようになります。サービスにリンクされたロールは、AWS アカウント に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

リンクされたサービスで、そのサービスにリンクされたロールのアクセス許可を定義します。特に定義されている場合を除き、ロールは、そのサービスでのみ引き受けることができます。定義したアクセス許可には、信頼ポリシーと許可ポリシーが含まれます。この許可ポリシーを他の IAM エンティティにアタッチすることはできません。

ロールを削除する前に、最初に関連するリソースを削除する必要があります。これにより、リソースにアクセスするための許可を意図せず削除することが防止され、 リソースが保護されます。

ヒント

サービスにリンクされたロールを使用してサポートするサービスについては、「IAM と連携する AWS のサービス」を参照し、[Service-Linked Role] (サービスにリンクされたロール) 列が [Yes] (はい) になっているサービスを検索してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[Yes] (はい) リンクを選択します。

サービスにリンクされたロールのアクセス許可

ユーザーまたはロールがサービスにリンクされたロールを作成または編集できるようにするには、IAM エンティティ (ユーザーまたはロール) のアクセス許可を設定する必要があります。

注記

サービスにリンクされたロールの ARN にはサービスプリンシパルが含まれています。以下のポリシーでは SERVICE-NAME.amazonaws.com として示されています。サービスプリンシパルは推量しないでください。サービスプリンシパルは、大文字と小文字が区別され、AWS のサービス間で異なる場合があります。サービスのサービスプリンシパルを表示するには、そのサービスにリンクされたロールのドキュメントを参照してください。

特定のサービスにリンクされたロールの作成を IAM エンティティに許可するには

サービスにリンクされたロールを作成する必要のある IAM エンティティに、次のポリシーを追加します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*", "Condition": {"StringLike": {"iam:AWSServiceName": "SERVICE-NAME.amazonaws.com"}} }, { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*" } ] }

IAM エンティティがサービスにリンクされた任意のロールを作成することを許可するには

サービスにリンクされたロール、または必要なポリシーを含む任意のサービスロールを作成する必要のある IAM エンティティのアクセス許可ポリシーに、次のステートメントを追加します。このポリシーステートメントでは、IAM エンティティがポリシーをロールにアタッチすることは許可されません。

{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/*" }

IAM エンティティが任意のサービスロールの説明を編集することを許可するには

サービスにリンクされたロール、または任意のサービスロールの説明を編集する必要のある IAM エンティティのアクセス許可ポリシーに、次のステートメントを追加します。

{ "Effect": "Allow", "Action": "iam:UpdateRoleDescription", "Resource": "arn:aws:iam::*:role/aws-service-role/*" }

IAM エンティティがサービスにリンクされた特定のロールを削除することを許可するには

サービスにリンクされたロールを削除する必要のある IAM エンティティのアクセス許可ポリシーに、次のステートメントを追加します。

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*" }

IAM エンティティがサービスにリンクされた任意のロールを削除することを許可するには

サービスロールではなく、サービスにリンクされたロールを削除する必要のある IAM エンティティのアクセス許可ポリシーに、以下のステートメントを追加します。

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/*" }

既存のロールをサービスに渡すことを IAM エンティティに許可するには

一部の AWS サービスでは、新しいサービスにリンクされたロールを作成せずに、既存のロールをサービスに渡すことができます。そのためには、サービスにロールを渡すアクセス許可がユーザーに必要です。ロールを渡す必要のある IAM エンティティのアクセス許可ポリシーに、以下のステートメントを追加します。このポリシーステートメントでは、エンティティは、渡すことができるロールのリストを表示できます。詳細については、「AWS サービスにロールを渡すアクセス許可をユーザーに付与する」を参照してください。

{ "Sid": "PolicyStatementToAllowUserToListRoles", "Effect": "Allow", "Action": ["iam:ListRoles"], "Resource": "*" }, { "Sid": "PolicyStatementToAllowUserToPassOneSpecificRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/my-role-for-XYZ" }

サービスにリンクされたロールによる間接的なアクセス許可

サービスにリンクされたロールによって付与されたアクセス許可は、他のユーザーおよびロールに間接的に転送できます。サービスにリンクされたロールが AWS サービスによって使用される場合、そのサービスにリンクされたロールは、自身のアクセス許可を使用して他の AWS サービスを呼び出すことができます。つまり、サービスにリンクされたロールを使用するサービスを呼び出すアクセス許可を持つユーザーとロールは、そのサービスにリンクされたロールがアクセスできるサービスに間接的にアクセスできる可能性があります。

たとえば、Amazon RDS DB インスタンスを作成すると、RDS のサービスにリンクされたロールは、まだ存在しない場合は自動的に作成されます。このサービスにリンクされたロールを使用すると、RDS は、ユーザーに代わって Amazon EC2、Amazon SNS、Amazon SNS、Amazon CloudWatch Logs、Amazon Kinesis を呼び出すことを許可します。アカウントのユーザーとロールに RDS データベースの変更や作成を許可すると、RDS を呼び出すことで Amazon EC2、Amazon SNS、Amazon CloudWatch Logs ログ、Amazon Kinesis のリソースと間接的にやり取りできるようになる可能性があります。RDS はサービスにリンクされたロールを使用してこれらのリソースにアクセスするためです。

サービスにリンクされたロールの作成

サービスにリンクされたロールを作成するメソッドは、サービスによって異なります。場合によっては、サービスにリンクされたロールを手動で作成する必要はありません。たとえば、サービス特定のアクション (リソースの作成) を完了すると、サービスによって、サービスにリンクされたロールが作成される場合があります。または、サービスにリンクされたロールのサポートを開始する前からサービスを使用していた場合は、アカウントにロールが自動的に作成される場合があります。詳細については、「AWS アカウントに新しいロールが表示される」を参照してください。

また、サービスにリンクされたロールは、サービスコンソール、API、CLI を使用して、手動で作成できる場合があります。サービスにリンクされたロールを使用してサポートするサービスについては、「IAM と連携する AWS のサービス」を参照し、[Service-Linked Role] (サービスにリンクされたロール) 列が [Yes] (はい) になっているサービスを検索してください。サービスにリンクされたロールをサービスで作成できるかどうかを確認するには、「はい」リンクを選択して、該当サービスのサービスにリンクされたロールに関するドキュメントを参照してください。

ロールの作成がサービスでサポートされていない場合は、IAM を使用して、サービスにリンクされたロールを作成できます。

重要

サービスにリンクされたロールでは、AWS アカウント の IAM ロールの制限に向かってカウントされますが、このロールは制限を超えてもアカウントに作成することができます。この制限を超える可能性があるのは、サービスにリンクされたロールのみです。

サービスにリンクされたロールの作成 (コンソール)

IAM のサービスにリンクされたロールを作成する前に、サービスにリンクされたロールがサービスで自動的に作成されるかどうかを確認します。さらに、サービスのコンソール、API、または CLI からロールを作成できるかどうかも確認します。

サービスにリンクされたロールを作成するには (コンソール)
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. IAM コンソールのナビゲーションペインで [ロール] を選択します。続いて、[Create role] (ロールの作成) を選択します。

  3. [AWS のサービス] ロールタイプを選択します。

  4. 提供するサービスのユースケースを選択します。ユースケースは、サービスに必要な信頼ポリシーを含めるように定義されています。[次へ] を選択します。

  5. ロールにアタッチするアクセス権限ポリシーを 1 つ以上選択します。選択したユースケースに基づき、サービスで以下のいずれかを行う場合があります。

    • ロールで使用するアクセス権限を定義します。

    • 制限されたアクセス権限からの選択を許可します。

    • すべてのアクセス権限からの選択を許可します。

    • この時点でポリシーを選択できないようにし、ポリシーを作成してからロールにアタッチします。

    ロールに許可する許可を割り当てるポリシーの横にあるチェックボックスを選択し、[Next] (次へ) を選択します。

    注記

    設定したアクセス権限は、ロールを使用するすべてのエンティティで有効となります。デフォルトでは、ロールにはいずれのアクセス権限もありません。

  6. [ロール名] の場合、ロール名のカスタマイズの度合いはサービスによって定義されます。サービスのロール名が定義されている場合、このオプションを変更することはできません。その他の場合、サービスはロールのプレフィックスを定義し、オプションのサフィックスを入力できるようにするかもしれません。

    可能であれば、ロールのデフォルト名に追加するサフィックスを入力します。このサフィックスは、このロールの目的を識別するのに役立ちます。ロール名は AWS アカウント内で一意でなければなりません。大文字と小文字は区別されません。例えば、<service-linked-role-name>_SAMPLE<service-linked-role-name>_sample というロール名を両方作成することはできません。多くのエンティティによりロールが参照されるため、作成後にロール名を変更することはできません。

  7. (オプション) [Description] (説明) で、サービスにリンクされた新しいロールの説明を編集します。

  8. 作成中にサービスにリンクされたロールにタグ付けすることはできません。IAM におけるタグの使用の詳細については、「AWS Identity and Access Management リソースのタグ」を参照してください。

  9. ロール情報を確認し、ロールの作成 を選択します。

サービスにリンクされたロールの作成 (AWS CLI)

IAM でサービスにリンクされたロールを作成するには、リンクされたサービスで、サービスにリンクされたロールが自動的に作成されるかどうかと、サービスの CLI からロールを作成できるかどうかについて確認します。サービス CLI がサポートされていない場合は、IAM コマンドを使用して、ロールを引き受けるためにサービスで必要な信頼ポリシーやインラインポリシーを含めて、サービスにリンクされたロールを作成することができます。

サービスにリンクされたロールを作成するには (AWS CLI)

次のコマンドを実行します。

aws iam create-service-linked-role --aws-service-name SERVICE-NAME.amazonaws.com

サービスにリンクされたロールの作成 (AWS API)

IAM でサービスにリンクされたロールを作成するには、リンクされたサービスで、サービスにリンクされたロールが自動的に作成されるかどうかと、サービスの API からロールを作成できるかどうかについて確認します。サービス API がサポートされていない場合は、AWS API を使用して、ロールを引き受けるためにサービスで必要な信頼ポリシーやインラインポリシーを含めて、サービスにリンクされたロールを作成することができます。

サービスにリンクされたロールを作成するには (AWS API)

CreateServiceLinkedRole API コールを使用します。リクエストで、サービス名SERVICE_NAME_URL.amazonaws.comを指定します。

たとえば、サービスにリンクされたロール ([Lex Bots]) を作成するには、lex.amazonaws.com を使用します。