Amazon Bedrock 通过托管授权管理 AWS Marketplace 私有定价优惠
Manage private pricing offers for Amazon Bedrock with managed entitlements
Amazon Bedrock 推出托管授权(managed entitlements)功能,简化多账户对第三方 AI 模型的访问:只需在中央账户订阅一次 AWS Marketplace Private Pricing Offer,即可在整个组织内分发访问权限。
人工智能
跨数十个甚至数百个 AWS 账户管理 AI 模型访问会造成运维摩擦,因为每个工作负载账户都必须单独订阅并接受 AWS Marketplace 私有定价优惠(MPPO)。支持托管权益的 Amazon Bedrock 简化了对第三方 AI 模型的多账户访问,你只需在中央账户订阅一次,即可在整个组织内分发访问权限。
在这篇文章中,我们展示了两种在 AWS License Manager 中激活 AWS Marketplace 私有定价优惠(MPPO)权益的方法。当你想要一次性的、无需基础设施的方案来处理已经信任的已接收许可时,请使用轻量级脚本。当你想要持续的事件驱动处理来验证卖家、创建并激活分发授权时,请使用 CDK 自动化。
为什么要自动化授权激活
通过 AWS Marketplace 私有定价优惠,你可以为 Amazon Bedrock 上的第三方模型协商自定义价格。在接受符合条件的私有优惠后,AWS Marketplace 会在 AWS License Manager 中创建一个许可。在启用了所有功能的 AWS Organizations 中,组织级授权会被自动接受,但在你激活它们之前会保持 Disabled(禁用)状态。
团队通常通过检查 AWS License Manager 控制台并手动激活授权来管理这一流程。手动检查虽然可行,但会增加工作量且容易遗漏。在有人激活授权之前,协商好的价格不会生效。随着团队采用新模型或续签条款,同样的工作量还会反复出现。
解决方案概览
示例代码库提供了两条路径:
- 路径 1 – 轻量级路径是一个独立脚本,它会列出已接收的许可并打印试运行(dry-run)计划。只有当你带上
--apply --confirm-account-id重新运行它时,它才会创建并激活组织范围的授权。它没有卖家允许列表,因此仅当你信任管理账户中的每个已接收许可时才使用它。 - 路径 2 – 事件驱动路径使用 AWS Cloud Development Kit(AWS CDK)在你的 AWS 管理账户中部署持续运行的自动化。
从以下实现路径中选择一条。如果需要一次性激活且不使用 CDK,请使用路径 1。如果需要持续的事件驱动自动化,请使用路径 2。
路径 1:轻量级脚本(一次性激活)
当你需要一次性激活且不想部署 CDK 时,请使用此路径。该脚本会列出管理账户中的每个已接收许可,因此请在应用更改之前将试运行作为你的审查关卡。
- Clone the sample repository locally and move into the project directory.
git clone https://github.com/aws-samples/sample-bedrock-managed-entitlements.git cd sample-bedrock-managed-entitlements - Run the lightweight script in dry-run mode.
python3 lightweight/distribute_licenses.py - 检查列出的每个许可,确认 ISV Partner 签发者和账户范围与你预期的私有优惠相符。
- Apply the reviewed plan from the same AWS Organizations management account.
python3 lightweight/distribute_licenses.py --apply --confirm-account-id ACCOUNT_ID - 在授权激活后,请在生产环境中依赖私有优惠之前先验证计费路径。AWS Cost Explorer 中的计费数据可能存在延迟,因此请在费用出现后使用它来比较所涵盖 Amazon Bedrock 用量的实际收费。如需可重复的检查,可以调整示例工具 scripts/bedrock_discount_check.py 以匹配你的 ISV Partner 签发者,并确认预期的折扣路径。
路径 2:CDK 自动化(持续激活)
当你希望新的私有定价协议被自动处理时,请使用此路径。CDK 堆栈会监听符合条件的 AWS Marketplace 协议事件,检查你的卖家允许列表,创建分发授权,并在 License Manager 需要更多时间时重试激活。该解决方案包含三个组件:
- Amazon EventBridge 规则:该堆栈监听
us-east-1中默认事件总线上的 AWS Marketplace 协议事件。该规则匹配源aws.agreement-marketplace和详细信息类型Purchase Agreement Created - Acceptor,然后调用 AWS Lambda 函数。 - AWS Lambda 函数:该函数接收 AWS Marketplace 协议事件,验证卖家允许列表,发现许可证,创建分布式授权,并通过
CreateGrantVersion(Status=ACTIVE)请求激活。该函数将结果记录到 Amazon CloudWatch Logs 以便审计。 - AWS License Manager 权限:授权目标是您的组织、所选的组织单位(OU)或特定账户。只有在授权被激活并达到
ACTIVE或WORKFLOW_COMPLETED后,协商定价才会生效。
下图展示了事件驱动的流程。
图 1:时序图,展示 AWS Marketplace 向 Amazon EventBridge 发送 Purchase Agreement Created – Acceptor 事件,EventBridge 调用一个 AWS Lambda 函数。该函数验证卖家、发现接收到的许可证、创建分布式授权、通过 CreateGrantVersion(Status=ACTIVE) 请求激活,并将结果写入 Amazon CloudWatch Logs。
这种方法的主要优势:
- 更快获得协商定价。协商费率在分布式授权达到
ACTIVE或WORKFLOW_COMPLETED后即生效,无需等待手动在控制台检查。 - 跨账户的一致处理。可以为每个接收第三方模型授权的组织部署相同的 AWS Lambda 函数和 Amazon EventBridge 规则模式,使激活逻辑不因操作者而异。
- 内置审计追踪。每次激活尝试或跳过决定都会记录到 CloudWatch Logs,为您提供每项授权何时被激活、推迟或忽略的记录。
前提条件
在部署此路径之前,请确认以下前提条件:
- 使用
us-east-1中的 AWS Organizations 管理账户,并已配置 Python 3.12+、AWS Command Line Interface(AWS CLI)和 AWS CDK v2。 - 确认 AWS Organizations 已启用所有功能,且该私有报价是针对基于 License Manager 的 Bedrock 模型。软件即服务(SaaS)产品不属于此自动化的范围。
实施步骤
- Clone the sample repository locally and move into the project directory.
git clone https://github.com/aws-samples/sample-bedrock-managed-entitlements.git cd sample-bedrock-managed-entitlements - Verify or enable organization prerequisites.
python3 scripts/bootstrap_prereqs.py --check --region us-east-1在进行更改之前,先检查所有
APPLY或MANUAL项。引导脚本可以启用 License Manager 组织集成、License Manager 可信访问、AWS Marketplace 许可证管理可信访问,以及所需的服务相关角色。python3 scripts/bootstrap_prereqs.py --apply --region us-east-1 --confirm-account-id ACCOUNT_ID - Configure deployment inputs.
python3 scripts/setup_config.py查看
config/sellers.json。配置您的组织 ID、卖家允许列表、通知以及可选的授权目标。默认情况下,授权面向整个组织。使用grantTargets将授权范围限定到所选的 OU 或 AWS 账户。 - Deploy the CDK stack.
cd cdk pip install -r requirements.txt cdk bootstrap aws://ACCOUNT_ID/us-east-1 cdk deploy - Seed the Amazon DynamoDB seller allow-list from
config/sellers.json.cd .. python scripts/seed_sellers.py --config config/sellers.json将卖家允许列表视为安全边界。在填充表格之前,针对您接受的 AWS Marketplace 私有报价或接收到的 License Manager 许可证,逐一验证每个卖家账户 ID。不要添加宽泛或未经验证的卖家条目,因为匹配到的卖家可能会在您配置的授权目标范围内触发授权的创建和激活。
在部署并填充卖家信息后,该堆栈即可处理符合条件的 AWS Marketplace 协议事件。授权的创建和激活仅针对允许列表中经过验证的卖家进行,并且激活可能会推迟,直到 License Manager 完成授权工作流的处理。
- Validate the deployed automation.
python scripts/e2e_validate.py --org-id o-xxxxxxxxxx --seller-account SELLER_ACCOUNT_ID --simulate - Verify grant activation after an eligible AWS Marketplace agreement event.
aws logs tail /aws/lambda/mppo-grants-handler --follow --region us-east-1 python scripts/bedrock_discount_check.py --issuer "ISV Partner"激活和计费可见可能需要数小时或数天。在事件驱动的工作流接受并激活授权后,请在 AWS License Manager 中确认授权状态,然后在计费数据出现后,在 AWS Cost Explorer 中验证所涵盖的 Amazon Bedrock 用量。若要进行可重复的检查,请调整示例 scripts/bedrock_discount_check.py 工具,使其匹配您的 ISV 合作伙伴签发方和目标关联账户。
清理
如果您为测试部署了此堆栈,请将其移除,以避免 Lambda 和 Amazon EventBridge 产生的少量持续费用:
cdk destroy客户之声
“作为一家每周支持数百万次临床医生咨询的 AI 医疗伴侣,Heidi Health 在真实规模上依赖第三方基础模型。AWS Marketplace 上的私有定价为我们提供了一种经济高效的方式来管理这种增长:我们可以在 AWS 账户和组织单位之间细粒度地归因用量和定价,并在采用新模型时自动化授权管理。这让我们的平台团队无需增加人工工作即可扩展成本治理。”
— Marcus Lau,Heidi Health 平台工程负责人
结论
本文展示了为 Amazon Bedrock 私有定价要约激活托管权益的两种方法。使用轻量级脚本一次性激活受信任的已接收许可证,或者在需要对新 AWS Marketplace 协议进行持续事件驱动处理时部署 CDK 自动化。这两种方法都减少了人工操作,并有助于在分布式授权被激活后应用协商的定价。
要开始使用,请在您的 AWS 管理账户中试用该 代码示例,以自动化模型订阅。
资源
- 示例代码:带有托管权益的 Amazon Bedrock(GitHub)
- AWS License Manager 用户指南
- AWS License Manager API 参考:CreateGrantVersion
- Amazon EventBridge 用户指南
- AWS CDK 开发人员指南
关于作者
来源:AWS Machine Learning Blog · aws.amazon.com
