

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 同意门户执行角色
<a name="identity-consent-portal-execution-role"></a>

用户意见征求门户将扮演您在创建门户`executionRoleArn`时传递的 IAM 角色。意见征求门户服务扮演此角色来读取网关和 OAuth2 凭据提供程序的配置以及检索 OAuth 客户端密钥。在创建用户意见征求门户之前，请使用本主题中描述的信任策略和权限策略创建此执行角色。您可以提供角色的 ARN，就像`executionRoleArn`使用[控制台创建意见征求门户或使用](identity-create-consent-portal-console.md) [CLI Amazon 创建同意门户](identity-create-consent-portal.md)一样。有关创建 IAM 角色的信息，请参阅[创建 IAM 角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create.html)。

## 信任策略
<a name="consent-portal-execution-role-trust-policy"></a>

用户意见征求门户执行角色必须包括以下信任策略，该策略允许用户意见征求门户服务主体担任该角色。`bedrock-agentcore.amazonaws.com``aws:SourceAccount`和`aws:SourceArn`条件限制了哪个账户和同意门户可以担任该角色，从而防止混乱的副手问题。

在策略中，替换：
+  `us-east-1`使用您正在使用的 Amazon 区域
+  `111122223333`使用您的 Amazon 账户 ID
+  {{consent-portal-id}}使用您的同意门户网站的 ID

```
{
"Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ConsentPortalAssumeRolePolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "bedrock-agentcore.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:consent-portal/consent-portal-id"
        }
      }
    }
  ]
}
```

**注意**  
由于在创建门户之前您不会知道同意门户 ARN，因此可以在首次创建执行角色时省略该`Condition`字段。创建同意门户后，作为最佳安全实践，将该`Condition`字段重新添加到策略中，然后执行以下操作：  
将`aws:SourceAccount`条件键值替换为用户意见征求门户所属账号的 ID。
将`aws:SourceArn`条件键值替换为用户意见征求门户的 ARN。

## 权限策略
<a name="consent-portal-execution-role-permissions-policy"></a>

将以下内联权限策略附加到执行角色。它授予用户同意门户读取网关和 OAuth2 凭据提供程序配置以及检索 OAuth 客户端密钥所需的操作。

在策略中，替换：
+  `us-east-1`使用您正在使用的 Amazon 区域
+  `111122223333`使用您的 Amazon 账户 ID
+  {{gateway-id}}使用用户意见征求门户所服务的网关的 ID

```
{
"Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "bedrock-agentcore:GetGateway",
        "bedrock-agentcore:GetGatewayTarget",
        "bedrock-agentcore:ListGatewayTargets"
      ],
      "Resource": "arn:aws:bedrock-agentcore:us-east-1:111122223333:gateway/gateway-id"
    },
    {
      "Effect": "Allow",
      "Action": [
        "bedrock-agentcore:GetOauth2CredentialProvider",
        "bedrock-agentcore:ListOauth2CredentialProviders"
      ],
      "Resource": [
        "arn:aws:bedrock-agentcore:us-east-1:111122223333:token-vault/default/oauth2credentialprovider/*",
        "arn:aws:bedrock-agentcore:us-east-1:111122223333:token-vault/default"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "bedrock-agentcore:CompleteResourceTokenAuth",
        "bedrock-agentcore:GetResourceOauth2Token",
        "bedrock-agentcore:GetWorkloadAccessTokenForJWT"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetSecretValue"
      ],
      "Resource": [
        "arn:aws:secretsmanager:us-east-1:111122223333:secret:bedrock-agentcore-identity!default/oauth2/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/aws:secretsmanager:owningService": "bedrock-agentcore-identity"
        }
      }
    }
  ]
}
```