

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# EC2 インスタンスで実行するアプリケーションに対するアクセス許可の指定
<a name="opsworks-security-appsrole"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

スタックの Amazon EC2 インスタンスで実行するアプリケーションが、Amazon S3 バケットなどの他の AWS リソースにアクセスするには、適切なアクセス許可が必要です。アクセス許可を付与するには、インスタンスプロファイルを使用します。[OpsWorks スタックスタックを作成するときに、](workingstacks-creating.md)インスタンスごとにインスタンスプロファイルを指定できます。

![\[[Add Stack] ページの高度なオプション。\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/add-stack-instanceproflie.png)


[レイヤー設定を編集](workinglayers-basics-edit.md)して、レイヤーのインスタンスのプロファイルを指定することも可能です。

インスタンスプロファイルにより、IAM ロールが指定されます。インスタンスで実行するアプリケーションは、ロールのポリシーによって付与されたアクセス許可に応じて、AWS リソースにアクセスするためにそのロールを引き受けることができます。アプリケーションがロールを引き受ける方法の詳細については、「[API コールを使用してロールを引き受ける](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-assume-role.html)」を参照してください。

次のいずれかの方法でインスタンスプロファイルを作成することができます。
+ IAM コンソールまたは API を使用して、プロファイルを作成します。

  詳細については、「[ロール (委任とフェデレーション)](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html)」を参照してください。
+  CloudFormation テンプレートを使用してプロファイルを作成します。

  IAM リソースをテンプレートに含める方法のいくつかの例については、[「Identity and Access Management (IAM) Template Snippets」](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html)(Identity and Access Management (IAM) テンプレートスニペット) を参照してください。

インスタンスプロファイルには信頼関係と AWS のリソースへのアクセス許可を付与するアタッチされたポリシーがあります。

------
#### [ JSON ]

****  

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

------

 OpsWorks スタックがユーザーに代わって動作するには、インスタンスプロファイルにこの信頼関係が必要です。デフォルトのサービスロールを使用する場合は、信頼関係を変更しないでください。カスタムサービスロールを作成する場合は、次のように信頼関係を指定します。
+ [[IAM console]](https://console.aws.amazon.com/iam/home#roles) (IAMコンソール) の**「Create Role」**(ロールロールの作成) ウィザードを使用している場合、ウィザードの2ページ目の **[AWS Service Roles]** (AWS サービスロール)で **[Amazon EC2]** (Amazon EC2) のロールタイプを指定します。
+  CloudFormation テンプレートを使用している場合は、テンプレートの**リソース**セクションに次のような内容を追加できます。

  ```
  "Resources": {
        "OpsWorksEC2Role": {
           "Type": "AWS::IAM::Role",
           "Properties": {
              "AssumeRolePolicyDocument": {
                 "Statement": [ {
                    "Effect": "Allow",
                    "Principal": {
                       "Service": [ "ec2.amazonaws.com" ]
                    },
                    "Action": [ "sts:AssumeRole" ]
                 } ]
              },
              "Path": "/"
           }
        },
        "RootInstanceProfile": {
           "Type": "AWS::IAM::InstanceProfile",
           "Properties": {
              "Path": "/",
              "Roles": [ {
                 "Ref": "OpsWorksEC2Role"
              }
           ]
        }
     }
  }
  ```

インスタンスプロファイルを作成すると、その時点でプロファイルのロールに適切なポリシーをアタッチできます。スタックを作成した後、[IAM console](https://console.aws.amazon.com/iam/) (IAM コンソール) または API を使用して、適切なポリシーをプロファイルのロールにアタッチする必要があります。たとえば、次のポリシーでは、amzn-s3-demo-bucket という名前の Amazon S3 バケット内のすべてのオブジェクトへのフルアクセスを許可します。*region* と amzn-s3-demo-bucket を、設定に適した値に置き換えます。

インスタンスプロファイルの作成および使用方法の例については、「[Amazon S3 バケットの使用](https://docs.aws.amazon.com/opsworks/latest/userguide/gettingstarted.walkthrough.photoapp.html)」を参照してください。

アプリケーションがインスタンスプロファイルを使用して EC2 インスタンスから OpsWorks スタック API を呼び出す場合、ポリシーは スタックやその他の AWS サービスに適切な`iam:PassRole`アクションに加えて OpsWorks 、 アクションを許可する必要があります。`iam:PassRole` アクセス許可により、 OpsWorks スタックがユーザーに代わってサービスロールを引き受けることができるようになります。 OpsWorks スタック API の詳細については、[AWS OpsWorksリファレンス](https://docs.aws.amazon.com/opsworks/latest/APIReference/Welcome.html)」を参照してください。

以下は、EC2 インスタンスからスタックアクションを呼び出すこと、および Amazon EC2 OpsWorks または Amazon S3 アクションを呼び出すことを許可する IAM ポリシーの例です。

**注記**  
を許可しない場合`iam:PassRole`、 OpsWorks スタックアクションの呼び出しは失敗し、次のようなエラーが発生します。  

```
User: arn:aws:sts::123456789012:federated-user/Bob is not authorized
to perform: iam:PassRole on resource:
arn:aws:sts::123456789012:role/OpsWorksStackIamRole
```

アクセス許可に EC2 インスタンスのロールを使用する詳細については、[https://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html)ユーザーガイド*のAWS Identity and Access Management Amazon EC2 インスタンスで実行されるアプリケーションに、AWS リソースへのアクセスを付与する*を参照してください。