

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 選項 2：應用程式只能擔任信任政策允許的角色
<a name="option-2"></a>

在此案例中，已從 佈建兩個憑證於 AWS Certificate Manager (ACM)， AWS 私有憑證授權單位 並與需要存取 AWS 資源的應用程式共用。**應用程式 1** 只能擔任**角色 1**，而**應用程式 2** 只能擔任**角色 2**。在角色信任政策中，您可以將憑證主體欄位設定為條件。這些條件允許應用程式僅擔任特定角色。由於角色許可，只有**應用程式 1** 可以存取**儲存貯體 1**，而只有**應用程式 2** 可以存取**儲存貯體 2**。下圖顯示每個應用程式擁有的存取權。

![使用不同憑證且只能擔任特定角色的應用程式。](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/certificate-based-access-controls/images/option-2-overview.png)


在此選項中，您可以將信任政策設定為`AssumeRole`僅在符合特定憑證屬性時才允許 。範例角色信任政策示範如何設定 `Condition`區段，以要求特定憑證通用名稱 (`CN`)，這對於**角色 1** 和**角色 2** 不同。每個應用程式都可以擔任特定角色，因為 與 IAM Roles Anywhere 具有信任錨點關係 AWS 私有 CA。此方法有助於防止未經授權存取角色和資料，因為應用程式無法擔任連結至目標設定檔的任何角色。例如，您可以將商業資料分隔為不同的儲存貯體、設定角色以僅允許存取其中一個儲存貯體，然後在信任政策中使用憑證型存取控制來定義應用程式可擔任的角色。

**角色 1 **的下列範例信任政策的條件，只有在憑證名稱為 `application-1.com`且信任錨點 Amazon Resource Name (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)區段中。 