Amazon Bedrock 代理基于身份的策略示例 - Amazon Bedrock

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

Amazon Bedrock 代理基于身份的策略示例

选择一个主题,查看可以附加到 IAM 角色的 IAM 策略示例,以便为 使用人工智能代理在应用程序中自动执行任务 中的操作预置权限。

Amazon Bedrock 代理所需的权限

要让 IAM 身份能够使用 Amazon Bedrock 代理,您必须为其配置必要的权限。您可以附加AmazonBedrockFullAccess策略以向该角色授予适当的权限。

要将权限限制为仅用于 Amazon Bedrock 代理中的操作,请将以下基于身份的策略附加到 IAM 角色:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AgentPermissions", "Effect": "Allow", "Action": [ "bedrock:ListFoundationModels", "bedrock:GetFoundationModel", "bedrock:TagResource", "bedrock:UntagResource", "bedrock:ListTagsForResource", "bedrock:CreateAgent", "bedrock:UpdateAgent", "bedrock:GetAgent", "bedrock:ListAgents", "bedrock:DeleteAgent", "bedrock:CreateAgentActionGroup", "bedrock:UpdateAgentActionGroup", "bedrock:GetAgentActionGroup", "bedrock:ListAgentActionGroups", "bedrock:DeleteAgentActionGroup", "bedrock:GetAgentVersion", "bedrock:ListAgentVersions", "bedrock:DeleteAgentVersion", "bedrock:CreateAgentAlias", "bedrock:UpdateAgentAlias", "bedrock:GetAgentAlias", "bedrock:ListAgentAliases", "bedrock:DeleteAgentAlias", "bedrock:AssociateAgentKnowledgeBase", "bedrock:DisassociateAgentKnowledgeBase", "bedrock:ListAgentKnowledgeBases", "bedrock:GetKnowledgeBase", "bedrock:ListKnowledgeBases", "bedrock:PrepareAgent", "bedrock:InvokeAgent", "bedrock:AssociateAgentCollaborator", "bedrock:DisassociateAgentCollaborator", "bedrock:GetAgentCollaborator", "bedrock:ListAgentCollaborators", "bedrock:UpdateAgentCollaborator" ], "Resource": "*" } ] }

您可以通过省略操作或指定资源条件键来进一步限制权限。IAM 身份可以对特定资源调用 API 操作。例如,UpdateAgent 操作只能用于代理资源,InvokeAgent 操作只能用于别名资源。对于不在特定资源类型上使用的 API 操作(例如 CreateAgent),请将 Resource 指定为 *。如果您指定的 API 操作无法用于策略中指定的资源,Amazon Bedrock 将返回错误。

允许用户查看关于代理的信息并调用代理

以下是您可以附加到 IAM 角色的示例策略,以允许该角色查看有关代理的信息或编辑具有 ID 的代理,AGENT12345以及使用该 ID 与其别名进行交互ALIAS12345。例如,您可以将该策略附加到仅具有对代理进行问题排查和更新的权限的角色。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "GetAndUpdateAgent", "Effect": "Allow", "Action": [ "bedrock:GetAgent", "bedrock:UpdateAgent" ], "Resource": "arn:aws:bedrock:us-east-1:123456789012:agent/AgentId" }, { "Sid": "InvokeAgent", "Effect": "Allow", "Action": [ "bedrock:InvokeAgent" ], "Resource": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/AgentId/AgentAliasId" } ] }

控制对服务层的访问权限

Amazon Bedrock 服务等级为推理请求提供不同级别的处理优先级和定价。默认情况下,所有服务级别(优先级、默认和弹性)都可供拥有适当的 Bedrock 权限的用户使用,遵循允许名单方法,即除非明确限制,否则将授予访问权限。

但是,组织可能希望控制其用户可以访问哪些服务层以管理成本或强制执行使用政策。您可以通过使用带有bedrock:ServiceTier条件密钥的 IAM 策略来实施访问限制,以拒绝对特定服务层的访问。这种方法使您可以精细控制哪些团队成员可以使用高级服务等级(例如 “优先级”)或成本优化级别(例如 “flex”)。

以下示例显示了一个基于身份的策略,该策略拒绝访问所有服务层。当你想阻止用户指定任何服务等级,迫使他们使用系统默认行为时,这种类型的策略非常有用:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "bedrock:InvokeModel", "Resource": "*", "Condition": { "StringEquals": { "bedrock:ServiceTier": ["reserved", "priority", "default", "flex"] } } } ] }

您可以通过修改bedrock:ServiceTier条件值自定义此策略,使其仅拒绝对特定服务层的访问。例如,要在允许 “默认” 和 “弹性” 的同时仅拒绝高级 “优先级” 级别,则只能["priority"]在条件中指定。这种灵活的方法允许您实施与组织的成本管理和运营要求相一致的使用策略。有关服务等级的更多信息,请参阅用于优化性能和成本的服务分层