

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

# オプション 2: アプリケーションは、信頼ポリシーが許可するロールのみを引き受けることができます
<a name="option-2"></a>

このシナリオでは、2 つの証明書が AWS Certificate Manager (ACM) からプロビジョニング AWS Private Certificate Authority され、 AWS リソースへのアクセスを必要とするアプリケーションと共有されています。**アプリケーション 1** は**ロール 1 **のみを引き受け、**アプリケーション 2** は**ロール 2 **のみを引き受けることができます。ロール信頼ポリシーでは、証明書のサブジェクトフィールドを条件として設定します。これらの条件により、アプリケーションは特定のロールのみを引き受けることができます。ロールのアクセス許可により、**アプリケーション 1 **のみが**バケット 1 **にアクセスでき、**アプリケーション 2** のみが**バケット 2 **にアクセスできます。次の図は、各アプリケーションが持つアクセスを示しています。

![異なる証明書を使用し、特定のロールのみを引き受けることができるアプリケーション。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/certificate-based-access-controls/images/option-2-overview.png)


このオプションでは、特定の証明書属性が満たされた`AssumeRole`場合にのみ を許可するように信頼ポリシーを設定します。サンプルロールの信頼ポリシーは、ロール **1 とロール** **2** で異なる特定の証明書共通名 (`CN`) を要求するように `Condition`セクションを設定する方法を示しています。にはトラストアンカー関係があるため、各アプリケーション IAM Roles Anywhere は特定のロールを引き受けることができます AWS Private CA。このアプローチは、アプリケーションがターゲットプロファイルにリンクされたロールを引き受けることができないため、ロールとデータへの不正アクセスを防ぐのに役立ちます。たとえば、ビジネスデータを異なるバケットに分離し、それらのバケットの 1 つだけへのアクセスを許可するようにロールを設定し、信頼ポリシーで証明書ベースのアクセスコントロールを使用して、アプリケーションが引き受けることができるロールを定義できます。

**ロール 1 **の次の信頼ポリシーのサンプルには、証明書名が `application-1.com`で、信頼アンカー Amazon リソースネーム (ARN) が一致する場合にのみロールの引き受けを許可する条件があります。

```
{
  "Version": "2012-10-17", 		 	 	 		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "rolesanywhere.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:SetSourceIdentity",
        "sts:TagSession"
      ],
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/x509Subject/CN": "application-1.com"
        },
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:rolesanywhere:<region>:<account-ID>:trust-anchor/<TA_ID>"
          ]
        }
      }
    }
  ]
}
```

**ロール 2 **の次の信頼ポリシーのサンプルには、証明書名が `application-2.com`であり、トラストアンカー ARN が一致する場合にのみロールの引き受けを許可する条件があります。

```
{
    "Version": "2012-10-17", 		 	 	 		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "rolesanywhere.amazonaws.com"
            },
            "Action": [
                "sts:AssumeRole",
                "sts:SetSourceIdentity",
                "sts:TagSession"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalTag/x509Subject/CN": "application-2.com"
                },
                "ArnEquals": {
                    "aws:SourceArn": [
                        "arn:aws:rolesanywhere:<region>:<account-ID>:trust-anchor/<TA_ID>"
                    ]
                }
            }
        }
    ]
}
```

ロールの信頼ポリシーと、これらのサンプルを変更する方法の詳細については、 IAM Roles Anywhere ドキュメントの[「信頼ポリシー](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/trust-model.html#trust-policy)」を参照してください。

**アプリケーション 1 **と**アプリケーション 2 **のサンプルロールとプロファイルポリシーは、このガイドの[付録: サンプルプロファイルとロールポリシー](appendix-sample-policies.md)のセクションに含まれています。 