View a markdown version of this page

在 Amazon Bedrock AgentCore Gateway 中使用 IAM - Amazon Bedrock AgentCore

在 Amazon Bedrock AgentCore Gateway 中使用 IAM

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

例如,您可以:

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

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

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

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

网关条件密钥

以下条件键适用于CreateGatewayUpdateGateway操作。

条件键 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_IAMCUSTOM_JWTNONE

网关目标条件密钥

以下条件键适用于CreateGatewayTargetUpdateGatewayTarget操作。

条件键 Type API 操作 说明

bedrock-agentcore:McpTargetConfigurationType

字符串

CreateGatewayTarget, UpdateGatewayTarget

按 MCP 目标的类型筛选访问权限。有效值包括 apiGatewaylambdamcpServeropenApiSchemasmithyModelconnector

bedrock-agentcore:HttpTargetConfigurationType

字符串

CreateGatewayTarget, UpdateGatewayTarget

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

bedrock-agentcore:InferenceTargetConfigurationType

字符串

CreateGatewayTarget, UpdateGatewayTarget

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

bedrock-agentcore:CredentialProviderType

字符串

CreateGatewayTarget, UpdateGatewayTarget

按目标上配置的凭证提供者类型筛选访问权限。有效值包括 GATEWAY_IAM_ROLEOAUTHAPI_KEYCALLER_IAM_CREDENTIALSJWT_PASSTHROUGH

bedrock-agentcore:PrivateEndpointType

字符串

CreateGatewayTarget, UpdateGatewayTarget

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

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

为网关目标强制使用经批准的子网

使用以下策略将网关目标限制为已批准的子网。有关更多信息,请参阅将 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" ] } } } ] }