

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

# 同意入口網站執行角色
<a name="identity-consent-portal-execution-role"></a>

同意入口網站會擔任您在建立入口網站`executionRoleArn`時所傳遞的 IAM 角色。同意入口網站服務會擔任此角色來讀取閘道和 OAuth2 登入資料提供者組態，以及擷取 OAuth 用戶端秘密。在您建立同意入口網站之前，請使用本主題中所述的信任政策和許可政策來建立此執行角色。當您[使用主控台建立同意入口網站](identity-create-consent-portal-console.md)或使用 CLI 建立同意入口網站`executionRoleArn`時，您會提供角色的 ARN。 [AWS](identity-create-consent-portal.md)如需建立 IAM 角色的資訊，請參閱[建立 IAM 角色](https://docs.aws.amazon.com/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` 搭配您正在使用的 AWS 區域
+  `123456789012` 使用 AWS 您的帳戶 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": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012: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` 搭配您正在使用的 AWS 區域
+  `123456789012` 使用 AWS 您的帳戶 ID
+  {{閘道 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:123456789012:gateway/gateway-id"
    },
    {
      "Effect": "Allow",
      "Action": [
        "bedrock-agentcore:GetOauth2CredentialProvider",
        "bedrock-agentcore:ListOauth2CredentialProviders"
      ],
      "Resource": [
        "arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/default/oauth2credentialprovider/*",
        "arn:aws:bedrock-agentcore:us-east-1:123456789012: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:123456789012:secret:bedrock-agentcore-identity!default/oauth2/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/aws:secretsmanager:owningService": "bedrock-agentcore-identity"
        }
      }
    }
  ]
}
```