View a markdown version of this page

在亚马逊 Bedrock AgentCore Gateway 中使用 IAM 条件 - 亚马逊基岩 AgentCore

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

在亚马逊 Bedrock AgentCore Gateway 中使用 IAM 条件

使用 Amazon Bedrock AgentCore-specific 条件密钥来控制您在组织中创建和配置网关和网关目标的方式。这些条件键适用于控制平面操作。它们在服务控制策略 (SCP) 中特别有用,可以强制执行组织安全要求。

例如,您可以:

  • 要求所有网关使用特定的身份提供商进行身份验证。

  • 限制可以创建哪些类型的目标。

  • 强制目标使用特定的凭证提供者类型。

  • 要求网关目标通过经批准的子网和安全组进行连接。

网关条件密钥

以下条件键适用于CreateGateway和UpdateGateway操作。

条件键 Type API 操作 说明

bedrock-agentcore:DiscoveryUrl

字符串

CreateGateway, UpdateGateway

按网关上配置的发现 URL 筛选访问权限。使用它来确保网关使用特定的身份提供商。

bedrock-agentcore:KmsKeyArn

字符串

CreateGateway, UpdateGateway

按用于加密网关资源的 KMS 密钥 ARN 筛选访问权限。

bedrock-agentcore:PolicyEngineArn

字符串

CreateGateway, UpdateGateway

按与网关关联的策略引擎配置的 ARN 筛选访问权限。

bedrock-agentcore:PolicyEngineMode

字符串

CreateGateway, UpdateGateway

按与网关相关的策略引擎配置的模式筛选访问权限。

bedrock-agentcore:ProtocolType

字符串

CreateGateway, UpdateGateway

按网关的协议类型筛选访问权限。

bedrock-agentcore:GatewayAuthorizerType

字符串

CreateGateway, UpdateGateway

按网关上配置的授权者类型筛选访问权限。有效值包括 AWS_IAM、CUSTOM_JWT 和 NONE。

网关目标条件密钥

以下条件键适用于CreateGatewayTarget和UpdateGatewayTarget操作。

条件键 Type API 操作 说明

bedrock-agentcore:McpTargetConfigurationType

字符串

CreateGatewayTarget, UpdateGatewayTarget

按 MCP 目标的类型筛选访问权限。有效值包括 apiGateway、lambda、mcpServer、openApiSchema、smithyModel 和 connector。

bedrock-agentcore:HttpTargetConfigurationType

字符串

CreateGatewayTarget, UpdateGatewayTarget

按 HTTP 目标的类型筛选访问权限。有效值包括 agentcoreRuntime 和 passthrough。

bedrock-agentcore:InferenceTargetConfigurationType

字符串

CreateGatewayTarget, UpdateGatewayTarget

按推理目标的类型筛选访问权限。有效值包括 connector 和 provider。

bedrock-agentcore:CredentialProviderType

字符串

CreateGatewayTarget, UpdateGatewayTarget

按在目标上配置的凭据提供者类型筛选访问权限。有效值包括 GATEWAY_IAM_ROLE、OAUTH、API_KEY、CALLER_IAM_CREDENTIALS 和 JWT_PASSTHROUGH。

bedrock-agentcore:PrivateEndpointType

字符串

CreateGatewayTarget, UpdateGatewayTarget

按目标的私有端点类型筛选访问权限。有效值包括 managedVpcResource 和 selfManagedLatticeResource。

bedrock-agentcore:ResourceConfigurationIdentifier

字符串

CreateGatewayTarget, UpdateGatewayTarget

按目标私有端点的资源配置标识符筛选访问权限。

bedrock-agentcore:subnets

ArrayOfString

CreateGatewayTarget, UpdateGatewayTarget

按为目标的托管 VPC 资源配置的子网筛选访问权限。请参阅在 AgentCore VPC 设置中使用 IAM 条件密钥。

bedrock-agentcore:securityGroups

ArrayOfString

CreateGatewayTarget, UpdateGatewayTarget

筛选为目标的托管 VPC 资源配置的安全组的访问权限。

bedrock-agentcore:AllowedQueryParameters

ArrayOfString

CreateGatewayTarget, UpdateGatewayTarget

按目标元数据配置中允许的查询参数筛选访问权限。

bedrock-agentcore:AllowedRequestHeaders

ArrayOfString

CreateGatewayTarget, UpdateGatewayTarget

按目标元数据配置中允许的请求标头筛选访问权限。

bedrock-agentcore:AllowedResponseHeaders

ArrayOfString

CreateGatewayTarget, UpdateGatewayTarget

按目标元数据配置中允许的响应标头筛选访问权限。

bedrock-agentcore:CredentialProviderScope

ArrayOfString

CreateGatewayTarget, UpdateGatewayTarget

按在 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" ] } } } ] }