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

AWS サービスにアクセス許可を委任するロールの作成

Amazon EC2、AWS Data Pipeline、Amazon Elastic Transcoder、または AWS OpsWorks といったサービスへのアクセス許可を付与するときは、AWS サービス用のロールを作成します。これらのサービスは AWS リソースにアクセスできるため、それらのリソースでどのようなサービスが許可されるかを決定するロールを作成します。多くのシナリオでは、事前定義されたアクセス許可を含む AWS 管理ポリシーを選択できます。ただし、AWS 管理ポリシーで対応しきれない要件がある場合、カスタム管理ポリシーを作成したり、AWS 管理ポリシーのコピーから編集を開始したりすることができます。

ロールを使用してアクセス許可を委任する方法の詳細については、「ロールに関する用語と概念」を参照してください。

AWS サービス用のロールを作成する(AWS マネジメントコンソール)

AWS マネジメントコンソールを使用して、サービス用の IAM ロールを作成できます。

AWS コンソールを使用して AWS サービスのロールを作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) にサインインします。

  2. IAM コンソールのナビゲーションペインで [Roles] をクリックし、[Create New Role] をクリックします。

  3. [Role name] にそのロールの目的がわかるようなロール名を入力します。ロール名は AWS アカウント内で一意でなければなりません。名前を入力した後、ページの下部にある [Next Step] をクリックします。

    多くのエンティティによりロールが参照されるため、作成後にロール名を変更することはできません。

    重要

    ロール名はアカウント内で一意である必要があります。 大文字と小文字は区別されません。たとえば、「PRODROLE」と「prodrole」というロール名を両方作成することはできません。

  4. [AWS Service Roles] セクションを展開し、このロールを受け入れることを許可するサービスを選択します。

  5. サービスに与える必要があるアクセス権限が付与される管理ポリシーのチェックボックスをオンにします。ポリシーが存在しない場合はこのステップを省略し、ポリシーを後で作成してロールにアタッチします。

  6. [Next Step] をクリックしてロールを確認してから、[Create Role] をクリックします。

サービス用のロールを作成する(AWS Command Line Interface)

AWS CLI を使用したロールの作成には、複数のステップがあります。コンソールを使用してロールを作成する場合、多くのステップは自動的に行われますが、AWS CLI を使用する場合は、各ステップを明示的に実行する必要があります。ポリシーを作成して、ロールにアクセスポリシーを割り当てる必要があります。使用しているサービスが Amazon EC2 の場合は、インスタンスプロファイルも作成してロールを追加する必要があります。

AWS CLI を使用して AWS サービスのロールを作成するには、次のコマンドを使用します。

ロールを Amazon EC2 または Amazon EC2 を使用する別の AWS サービスと共に使用する場合、ロールをインスタンスプロファイルに保存する必要があります。インスタンスプロファイルは、Amazon EC2 インスタンスの起動時にインスタンスにアタッチできるロールのコンテナです。インスタンスプロファイルに含めることができるロールは 1 つのみであり、緩和できません。AWS マネジメントコンソールを使用してロールを作成すると、ロールと同じ名前のインスタンスプロファイルが自動的に作成されます。インスタンスプロファイルの詳細については、「インスタンスプロファイルの使用」を参照してください。ロールを使用して EC2 インスタンスを起動する方法については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Amazon EC2 インスタンスで IAM ロールを使用する方法」を参照してください。

インスタンスプロファイルを作成し、AWS CLI のロールを追加するには、次のコマンドを使用します。

以下の例は、4 つのステップをすべて示しています。この例では、Windows を実行しているクライアントコンピュータを使用中で、アカウントの認証情報とリージョンを使って既にコマンドラインインターフェイスを設定済みであることを前提にしています。詳細については、「AWS コマンドラインインターフェイスの設定」を参照してください。

最初のコマンドで参照されているサンプル信頼ポリシーには、Amazon EC2 サービスがロールを引き受けることができるようにする次の JSON コードが含まれています。

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } }

2 番目のコマンドで参照されているサンプルアクセスポリシーでは、ロールは example_bucket という名前の S3 バケットでの ListBucket アクションのみを実行できます。

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } }

この例で実行する AWS CLI コマンドは、次のとおりです。

Copy
# Create the role and attach the trust policy that enables EC2 to assume this role. aws iam create-role --role-name Test-Role-for-EC2 --assume-role-policy-document file://C:\policies\trustpolicyforec2.json # Embed the permissions policy (in this example an inline policy) to the role to specify what it is allowed to do. aws iam put-role-policy --role-name Test-Role-for-EC2 --policy-name Permissions-Policy-For-Ec2 --policy-document file://c:\policies\permissionspolicyforec2.json # Create the instance profile required by EC2 to contain the role aws iam create-instance-profile --instance-profile-name EC2-ListBucket-S3 # Finally, add the role to the instance profile aws iam add-role-to-instance-profile --instance-profile-name EC2-ListBucket-S3 --role-name Test-Role-for-EC2

EC2 インスタンスを起動したら、AWS コンソールを使用している場合は [Configure Instance Details] ページでインスタンスプロファイル名を指定し、aws ec2 run-instances CLI コマンドを使用している場合は --iam-instance-profile パラメータを指定します。

サービス用のロールを作成する(Tools for Windows PowerShell)

Tools for Windows PowerShell を使用したロールの作成には、複数のステップがあります。コンソールを使用してロールを作成する場合、多くのステップは自動的に行われますが、Windows PowerShell cmdlets を使用する場合は、各ステップを明示的に実行する必要があります。ポリシーを作成して、ロールにアクセスポリシーを割り当てる必要があります。使用しているサービスが Amazon EC2 の場合は、インスタンスプロファイルも作成してロールを追加する必要があります。

Tools for Windows PowerShell を使用して AWS サービスのロールを作成するには、次のコマンドを使用します。

ロールを Amazon EC2 または Amazon EC2 を使用する別の AWS サービスと共に使用する場合、ロールをインスタンスプロファイルに保存する必要があります。インスタンスプロファイルは、ロールのコンテナとして機能します。インスタンスプロファイルに含めることができるロールは 1 つのみであり、緩和できません。AWS マネジメントコンソールでロールを作成すると、ロールと同じ名前のインスタンスプロファイルが自動的に作成されます。インスタンスプロファイルの詳細については、「インスタンスプロファイルの使用」を参照してください。ロールを使用して EC2 インスタンスを起動する方法については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Amazon EC2 インスタンスで IAM ロールを使用する方法」を参照してください。

以下の例は、4 つのステップをすべて示しています。この例では、Windows を実行しているクライアントコンピュータを使用中で、アカウントの認証情報とリージョンを使って既にコマンドラインインターフェイスを設定済みであることを前提にしています。詳細については、AWS Tools for Windows PowerShell ユーザーガイドの「AWS 認証情報の使用」を参照してください。

最初のコマンドで参照されているサンプル信頼ポリシーには、Amazon EC2 サービスがロールを引き受けることができるようにする次の JSON コードが含まれています。

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } }

2 番目のコマンドで参照されているサンプルアクセスポリシーでは、ロールは example_bucket という名前の S3 バケットでの ListBucket アクションのみを実行できます。

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } }

この例で実行する Tools for Windows PowerShell コマンドは、次のとおりです。

Copy
# Create the role and attach the trust policy that enables EC2 to assume this role. New-IAMRole -RoleName Test-Role-for-EC2 -AssumeRolePolicyDocument (Get-Content -raw C:\policies\trustpolicyforec2.json) # Create an permissions policy (in this example an inline policy) for the role to specify what it is allowed to do. Write-IAMRolePolicy -RoleName Test-Role-for-EC2 -PolicyName Permissions-Policy-For-Ec2 -PolicyDocument (Get-Content -raw c:\policies\permissionspolicyforec2.json) # The following two lines are only needed when the role is for the EC2 service # Create the instance profile required by EC2 to contain the role New-IAMInstanceProfile -InstanceProfileName EC2-ListBucket-S3 # Finally, add the role to the instance profile Add-IAMRoleToInstanceProfile -InstanceProfileName EC2-ListBucket-S3 -RoleName Test-Role-for-EC2

EC2 インスタンスを起動したら、AWS コンソールを使用している場合は [Configure Instance Details] ページでインスタンスプロファイル名を指定し、New-EC2Instance Windows PowerShell cmdlet を使用している場合は -InstanceProfile_Name パラメータまたは -InstanceProfile_Arn パラメータを指定します。

サービス用のロールを作成する(AWS API)

API を使用するコードでロールを作成するには、次のコマンドを使用します。

  • ロールを作成します。CreateRole

    ロールの信頼ポリシーに対して、ファイルの場所を指定できます。

  • ロールに管理アクセスポリシーをアタッチします。AttachRolePolicy

    または

    ロールにインラインアクセスポリシーを作成します。PutRolePolicy

ロールを Amazon EC2 または Amazon EC2 を使用する別の AWS サービスと共に使用する場合、ロールをインスタンスプロファイルに保存する必要があります。インスタンスプロファイルは、ロールのコンテナとして機能します。各インスタンスプロファイルに含めることができるロールは 1 つのみであり、緩和できません。AWS マネジメントコンソールでロールを作成すると、ロールと同じ名前のインスタンスプロファイルが自動的に作成されます。インスタンスプロファイルの詳細については、「インスタンスプロファイルの使用」を参照してください。ロールを使用して Amazon EC2 インスタンスを起動する方法については、Linux インスタンス用 Amazon EC2 ユーザーガイド で、Amazon EC2 インスタンスで IAM ロールを使用する方法を参照してください。