在 Amazon Bedrock AgentCore Gateway 中使用 IAM
使用 Amazon Bedrock AgentCore-specific 条件密钥控制如何在组织中创建和配置网关和网关目标。这些条件键适用于控制平面操作。它们在服务控制策略 (SCP) 中特别有用,可以强制执行组织安全要求。
例如,您可以:
-
要求所有网关都使用特定的身份提供商进行身份验证。
-
限制可以创建的目标类型。
-
强制目标使用特定的凭证提供者类型。
-
要求网关目标通过经批准的子网和安全组进行连接。
网关条件密钥
以下条件键适用于CreateGateway和UpdateGateway操作。
| 条件键 | Type | API 操作 | 说明 |
|---|---|---|---|
|
|
字符串 |
|
通过网关上配置的发现 URL 筛选访问权限。使用它来确保网关使用特定的身份提供商。 |
|
|
字符串 |
|
按用于加密网关资源的 KMS 密钥 ARN 筛选访问权限。 |
|
|
字符串 |
|
按与网关关联的策略引擎配置的 ARN 筛选访问权限。 |
|
|
字符串 |
|
按与网关关联的策略引擎配置模式筛选访问权限。 |
|
|
字符串 |
|
按网关的协议类型筛选访问权限。 |
|
|
字符串 |
|
按网关上配置的授权者类型筛选访问权限。有效值包括 |
网关目标条件密钥
以下条件键适用于CreateGatewayTarget和UpdateGatewayTarget操作。
| 条件键 | Type | API 操作 | 说明 |
|---|---|---|---|
|
|
字符串 |
|
按 MCP 目标的类型筛选访问权限。有效值包括 |
|
|
字符串 |
|
按 HTTP 目标的类型筛选访问权限。有效值包括 |
|
|
字符串 |
|
按推理目标的类型筛选访问权限。有效值包括 |
|
|
字符串 |
|
按目标上配置的凭证提供者类型筛选访问权限。有效值包括 |
|
|
字符串 |
|
按目标的私有端点类型筛选访问权限。有效值包括 |
|
|
字符串 |
|
按目标私有端点的资源配置标识符筛选访问权限。 |
|
|
ArrayOfString |
|
按为目标的托管 VPC 资源配置的子网筛选访问权限。请参阅在 AgentCore VPC 设置中使用 IAM 条件密钥。 |
|
|
ArrayOfString |
|
按为目标的托管 VPC 资源配置的安全组筛选访问权限。 |
|
|
ArrayOfString |
|
按目标元数据配置中允许的查询参数筛选访问权限。 |
|
|
ArrayOfString |
|
按目标元数据配置中允许的请求标头筛选访问权限。 |
|
|
ArrayOfString |
|
按目标元数据配置中允许的响应标头筛选访问权限。 |
|
|
ArrayOfString |
|
按在 OAuth 凭据提供商上为目标配置的范围筛选访问权限。 |
策略示例
以下示例说明如何使用 IAM 策略和 SCP 中的条件密钥对网关配置实施组织控制。
要求网关使用特定的身份提供商
当网关不使用贵组织批准的身份提供商发现 URL 时,使用以下 SCP 拒绝网关的创建或更新。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceGatewayIdP", "Effect": "Deny", "Action": [ "bedrock-agentcore:CreateGateway", "bedrock-agentcore:UpdateGateway" ], "Resource": "*", "Condition": { "StringNotEquals": { "bedrock-agentcore:DiscoveryUrl": "https://login.example.com/.well-known/openid-configuration" } } } ] }
限制目标的凭证提供者类型
使用以下 SCP 将网关目标限制为经批准的凭证提供商类型。在此示例中,您可以将网关目标限制为仅使用网关的 IAM 角色或调用者 IAM 证书。目标不能使用外部管理的 API 密钥或 OAuth 令牌。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictTargetCredentialTypes", "Effect": "Deny", "Action": [ "bedrock-agentcore:CreateGatewayTarget", "bedrock-agentcore:UpdateGatewayTarget" ], "Resource": "*", "Condition": { "StringNotEquals": { "bedrock-agentcore:CredentialProviderType": [ "GATEWAY_IAM_ROLE", "CALLER_IAM_CREDENTIALS" ] } } } ] }
限制可以创建的 MCP 目标的类型
使用以下策略拒绝创建使用某些配置类型的 MCP 目标。此示例禁止目标使用直接 MCP 服务器 URL。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyDirectMcpServerTargets", "Effect": "Deny", "Action": [ "bedrock-agentcore:CreateGatewayTarget", "bedrock-agentcore:UpdateGatewayTarget" ], "Resource": "*", "Condition": { "StringEquals": { "bedrock-agentcore:McpTargetConfigurationType": "mcpServer" } } } ] }
要求目标使用私有端点
使用以下 SCP 拒绝创建未指定私有终端节点类型的目标。这样可以确保所有目标流量都保持在私有网络内。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforcePrivateEndpoints", "Effect": "Deny", "Action": [ "bedrock-agentcore:CreateGatewayTarget", "bedrock-agentcore:UpdateGatewayTarget" ], "Resource": "*", "Condition": { "Null": { "bedrock-agentcore:PrivateEndpointType": "true" } } } ] }
要求网关使用客户托管的 KMS 密钥
使用此 SCP 要求所有网关都使用客户托管的 KMS 密钥进行加密,而不是服务默认密钥。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceCustomerManagedKey", "Effect": "Deny", "Action": [ "bedrock-agentcore:CreateGateway", "bedrock-agentcore:UpdateGateway" ], "Resource": "*", "Condition": { "Null": { "bedrock-agentcore:KmsKeyArn": "true" } } } ] }
为网关目标强制使用经批准的子网
使用以下策略将网关目标限制为已批准的子网。有关更多信息,请参阅将 IAM 条件密钥与 AgentCore VPC 设置一起使用。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceApprovedSubnets", "Effect": "Deny", "Action": [ "bedrock-agentcore:CreateGatewayTarget", "bedrock-agentcore:UpdateGatewayTarget" ], "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "bedrock-agentcore:subnets": [ "subnet-0123456789abcdef0", "subnet-0123456789abcdef1" ] } } } ] }