本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在亚马逊 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" } } } ] }
为网关目标强制执行经批准的子网
使用以下策略将网关目标限制在经批准的子网内。有关更多信息,请参阅在 AgentCore VPC 设置中使用 IAM 条件密钥。
{ "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" ] } } } ] }