Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理策略和策略引擎
使用这些操作来管理您的策略引擎和策略。
Amazon CLI 和 Amazon SDK 可以对您账户中的任何策略引擎执行操作。 AgentCore CLI 的作用域仅限于单个 AgentCore 项目:它可以删除项目管理的引擎和策略,并agentcore status显示其已部署状态,但它没有等效项来读取或更新未创建的资源。使用 Amazon CLI 或 SDK 来解决这些问题。
列出策略引擎
查看您账户中的所有策略引擎。
选择以下方法之一:
例
- Amazon CLI
-
-
aws bedrock-agentcore-control list-policy-engines
- Amazon Python SDK (Boto3)
-
-
import boto3
client = boto3.client('bedrock-agentcore-control')
response = client.list_policy_engines()
for engine in response['policyEngines']:
print(f"Policy Engine: {engine['name']} (ID: {engine['policyEngineId']})")
print(f"Status: {engine['status']}")
print(f"Created: {engine['createdAt']}")
print(f"ARN: {engine['policyEngineArn']}")
无需解密即可列出摘要
除ListPolicyEngines和外ListPolicies,该服务还提供摘要,这些摘要返回标识符、姓名和状态,但省略了加密内容。策略引擎的摘要没有描述,策略的摘要没有描述definition。
aws bedrock-agentcore-control list-policy-engine-summaries
aws bedrock-agentcore-control list-policy-summaries \
--policy-engine-id my_policy_engine-a1b2c3d4e5
当您需要清单而不是报表本身时,请使用它们。当客户管理的密钥不可用时,您还可以使用它们来枚举存在的内容。完整列表和获取操作会在返回之前验证密钥并进行解密,因此当密钥被禁用、删除或撤销其授权时,它们会失败。摘要两者都没有。有关更多信息,请参阅密钥不可用:您无法列出或阅读您的政策。
获取策略引擎
检索有关特定策略引擎的详细信息:
例
- Amazon CLI
-
-
aws bedrock-agentcore-control get-policy-engine --policy-engine-id my_policy_engine-a1b2c3d4e5
- Amazon Python SDK (Boto3)
-
-
import boto3
client = boto3.client('bedrock-agentcore-control')
response = client.get_policy_engine(
policyEngineId='my_policy_engine-a1b2c3d4e5'
)
print(f"Policy Engine: {response['name']}")
print(f"ID: {response['policyEngineId']}")
print(f"ARN: {response['policyEngineArn']}")
print(f"Status: {response['status']}")
print(f"Created: {response['createdAt']}")
print(f"Updated: {response['updatedAt']}")
在策略引擎中列出策略
查看特定策略引擎中的所有策略:
例
- Amazon CLI
-
-
aws bedrock-agentcore-control list-policies --policy-engine-id my_policy_engine-a1b2c3d4e5
- Amazon Python SDK (Boto3)
-
-
import boto3
client = boto3.client('bedrock-agentcore-control')
response = client.list_policies(
policyEngineId='my_policy_engine-a1b2c3d4e5'
)
for policy in response['policies']:
print(f"Policy: {policy['name']} (ID: {policy['policyId']})")
print(f"Status: {policy['status']}")
print(f"Description: {policy.get('description', 'No description')}")
print(f"Created: {policy['createdAt']}")
获取政策
检索有关特定策略的详细信息:
例
- Amazon CLI
-
-
aws bedrock-agentcore-control get-policy --policy-engine-id my_policy_engine-a1b2c3d4e5 --policy-id my_policy-a1b2c3d4e5
- Amazon Python SDK (Boto3)
-
-
import boto3
client = boto3.client('bedrock-agentcore-control')
response = client.get_policy(
policyId='my_policy-a1b2c3d4e5',
policyEngineId='my_policy_engine-a1b2c3d4e5'
)
print(f"Policy: {response['name']}")
print(f"ID: {response['policyId']}")
print(f"ARN: {response['policyArn']}")
print(f"Status: {response['status']}")
print(f"Created: {response['createdAt']}")
print(f"Updated: {response['updatedAt']}")
print(f"Cedar Statement: {response['definition']['policy']['statement']}")
更新现有政策
UpdatePolicy是就地替代品,因此请发送您想要的完整对账单。
验证分两个阶段进行。格式错误的语句在呼叫时会被拒绝。ValidationException不受约束的原resource因之一:要么将其限制在特定的网关上resource ==,要么限制到带有的类型。resource is AgentCore::Gateway解析但不进行类型检查的语句返回 HTTP 202 并结算为UPDATE_FAILED,因此请等待ACTIVE而不是将响应视为成功。
如果更新的策略是临时策略,或者更新添加或删除了时态表达式,则对其进行更新会使引擎的活动临时策略会话失效。 In-flight 会话返回 HTTP 409ConflictException,必须重新启动。有关更多信息,请参阅会话失效。
例
- Amazon CLI
-
-
aws bedrock-agentcore-control update-policy \
--policy-id my_policy-a1b2c3d4e5 \
--policy-engine-id my_policy_engine-a1b2c3d4e5 \
--definition '{
"policy": {
"statement": "permit (principal, action == AgentCore::Action::\"RefundTool___process_refund\", resource == AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/my-gateway-a1b2c3d4e5\");"
}
}'
- Amazon Python SDK (Boto3)
-
-
import boto3
client = boto3.client('bedrock-agentcore-control')
client.update_policy(
policyId='my_policy-a1b2c3d4e5',
policyEngineId='my_policy_engine-a1b2c3d4e5',
definition={
'policy': {
'statement': (
'permit (principal, '
'action == AgentCore::Action::"RefundTool___process_refund", '
'resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/my-gateway-a1b2c3d4e5");'
)
}
}
)
waiter = client.get_waiter('policy_active')
waiter.wait(policyEngineId='my_policy_engine-a1b2c3d4e5', policyId='my_policy-a1b2c3d4e5')
删除策略
从策略引擎中删除策略。
例
- AgentCore CLI
-
-
对于您的 AgentCore 项目管理的策略,请将其从项目中移除并部署:
agentcore remove policy --name my_policy --engine my_policy_engine --yes
agentcore deploy --yes
agentcore remove仅编辑项目配置;下次该策略将从您的账户中删除agentcore deploy。
- Amazon CLI
-
-
aws bedrock-agentcore-control delete-policy --policy-engine-id my_policy_engine-a1b2c3d4e5 --policy-id my_policy-a1b2c3d4e5
- Amazon Python SDK (Boto3)
-
-
import boto3
client = boto3.client('bedrock-agentcore-control')
client.delete_policy(policyId='my_policy-a1b2c3d4e5', policyEngineId='my_policy_engine-a1b2c3d4e5')
waiter = client.get_waiter('policy_deleted')
waiter.wait(policyEngineId='my_policy_engine-a1b2c3d4e5', policyId='my_policy-a1b2c3d4e5')
删除策略引擎
删除整个策略引擎及其所有策略。
例
- AgentCore CLI
-
-
对于您的 AgentCore 项目管理的引擎,请将其从项目中移除并部署:
agentcore remove policy-engine --name my_policy_engine --yes
agentcore deploy --yes
移除网关不会移除与其连接的策略引擎;请单独移除该引擎。
- Amazon CLI
-
-
aws bedrock-agentcore-control delete-policy-engine --policy-engine-id my_policy_engine-a1b2c3d4e5
- Amazon Python SDK (Boto3)
-
-
import boto3
client = boto3.client('bedrock-agentcore-control')
client.delete_policy_engine(policyEngineId='my_policy_engine-a1b2c3d4e5')