访问 Amazon Bedrock 基础模型 - Amazon Bedrock

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

访问 Amazon Bedrock 基础模型

在具备正确的 AWS Marketplace 权限的情况下,对所有 Amazon Bedrock 基础模型的访问权限默认处于启用状态。要开始使用,只需从 Amazon Bedrock 控制台的模型目录中选择一个模型,然后在操场上将其打开,或者使用或 Conv erse API 操作调用该InvokeModel模型。有关 Amazon Bedrock 支持的不同模型的信息,请参阅 Amazon Bedrock 基础模型信息。有关模型定价的信息,请参阅 Amazon Bedrock 定价

在所有商业 AWS 区域中,如果具备正确的 AWS Marketplace 权限,默认情况下对所有 Amazon Bedrock 基础模型的访问权限均处于启用状态。有关以编程方式访问第三方模型的信息,请参阅使用 SDK 和 CLI 管理模型访问权限

注意

Anthropic 要求首次使用的客户在调用模型前提交使用案例详细信息,且每个账户或每个组织的管理账户仅需提交一次。您可以通过从 Amazon Bedrock 控制台的模型目录中选择 Anthropic 模型或调用 PutUseCaseForModelAccess API 命令来提交使用案例详细信息。在成功提交使用案例详细信息后,将立即授予对模型的访问权限。在主账户提交的表单将由同一 AWS 组织中的其他账户继承。

注意

对于 3P 模型 invoking/using ,即表示您首次同意适用的最终用户许可协议。有关更多信息,请参阅 AWS 服务条款无服务器第三方模型许可协议

需在允许使用模型之前审核并同意 EULA 的组织应:

  1. 首先通过服务控制策略(SCP)或 IAM 策略来阻止模型访问

  2. 审查 EULA 条款

  3. 只有在您同意 EULA 条款后,才能通过 SCP/IAM 策略启用模型访问权限

授予 IAM 权限以请求对具有产品 ID 的 Amazon Bedrock 基础模型的访问权限

您可以通过创建自定义 IAM 策略来管理模型访问。要修改对 Amazon Bedrock 基础模型的访问权限,您首先需要向允许访问 Amazon Bedrock 的 IAM 角色附加包含以下AWS Marketplace 操作的基于身份的 IAM 策略。

当您首次调用账户 AWS Marketplace 中提供的 Amazon Bedrock 无服务器模型时,Bedrock 会尝试自动为您的账户启用该模型。要使自动启用功能起作用,需要 AWS Marketplace 权限。

如果您无法 AWS Marketplace 获得权限,则拥有 AWS Marketplace 权限的人必须一次性为账户启用模型(手动或通过自动启用)。启用后,账户中的所有用户无需 AWS Marketplace 权限即可调用模型。启用模型后,用户无需 AWS Marketplace 订阅权限即可调用模型。只有在账户中首次使用模型时才需要这些权限。

通过以下 IAM 操作控制对具有产品 ID 的 Amazon Bedrock 无服务器基础模型的访问权限:

IAM 操作 说明 适用于的模型
aws-marketplace:Subscribe

允许 IAM 实体订阅 AWS Marketplace 产品,包括 Amazon Bedrock 基础模型。

仅在 AWS Marketplace中具有产品 ID 的 Amazon Bedrock 无服务器模型。
aws-marketplace:Unsubscribe 允许 IAM 身份取消订阅 AWS Marketplace 产品,包括 Amazon Bedrock 基础模型。 仅在 AWS Marketplace中具有产品 ID 的 Amazon Bedrock 无服务器模型。
aws 市场:ViewSubscriptions 允许 IAM 身份返回 AWS Marketplace 产品列表,包括 Amazon Bedrock 基础模型。 仅在 AWS Marketplace中具有产品 ID 的 Amazon Bedrock 无服务器模型。
注意

仅对于 aws-marketplace:Subscribe 操作,您可以使用 aws-marketplace:ProductId 条件键来限制对特定模型的订阅。

允许 IAM 身份请求对具有产品 ID 的模型的访问权限

身份必须已附加允许 aws-marketplace:Subscribe 的策略。

注意

如果某个身份已经在一个 AWS 区域订阅了模型,则该模型可供该身份在所有可用该模型的 AWS 区域中请求访问权限,即使其他区域aws-marketplace:Subscribe被拒绝。

有关创建策略的信息,请参阅我已有 AWS 账户

仅对于 aws-marketplace:Subscribe 操作,您可以使用 aws-marketplace:ProductId 条件键来限制对特定模型的订阅。

注意

来自以下提供商的模型未通过销售渠道进行销售 AWS Marketplace ,也没有产品密钥,因此您无法将aws-marketplace操作范围限定在他们身上:

  • Amazon

  • DeepSeek

  • Mistral AI

  • Meta

  • Qwen

  • OpenAI

但是,您可以通过拒绝 Amazon Bedrock 操作并在Resource字段 IDs 中指定这些模型来阻止使用这些模型。有关示例,请参阅阻止身份在获得访问权限后使用模型

选择一个部分以查看特定使用案例的 IAM 策略示例:

防止身份请求对具有产品 ID 的模型的访问权限

要防止 IAM 实体请求对具有产品 ID 的特定模型的访问权限,请向用户附加一个 IAM 策略,以便拒绝 aws-marketplace:Subscribe 操作并将 Condition 字段的范围限定为该模型的产品 ID。

例如,您可以将以下策略附加到身份以防止其订阅 Anthropic Claude 3.5 Sonnet 模型:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "aws-marketplace:Subscribe" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws-marketplace:ProductId": [ "prod-m5ilt4siql27k" ] } } } ] }
注意

利用此策略,IAM 实体默认有权访问任何新添加的模型。

如果身份已在至少一个区域订阅模型,则此策略不会阻止其在其他区域访问模型。相反,您可以参考阻止身份在获得访问权限后使用模型中的示例来限制模型的使用。

阻止身份在获得访问权限后使用模型

如果一个 IAM 身份已获得对某个模型的访问权限,您可以通过拒绝所有 Amazon Bedrock 操作,并将 Resource 字段限定为基础模型的 ARN 来阻止此身份使用该模型。

例如,您可以将以下策略附加到某个身份,以防止其在所有 AWS 区域使用该AnthropicClaude 3.5 Sonnet模型:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "bedrock:*" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0" ] } ] }

使用 SDK 和 CLI 管理模型访问权限

除了调用模型外,还可以使用 SDK 管理模型访问权限。以下步骤可用于 create/delete 建模访问权限以及检查访问权限是否已经存在。请注意,这仅适用于第三方型号。

按照以下步骤以编程方式管理模型访问权限:

先决条件

第 1 步:列出基金会示范协议报价

使用此 API 获取特定型号的协议报价。这将提供用于在后续步骤中创建模型访问权限的 OfferToken。

文档

AWS CLI
aws bedrock list-foundation-model-agreement-offers --model-id <ModelId>
Python
# Placeholder for modelId model_id = "<enter model id here>" # Placeholder for offerId offer_id = "<enter offer id here>" try: # offerType= "ALL" means both public and private offers, if offerType isn't defined, the default would be "PUBLIC" model_agreement_offers_response = bedrock_client.list_foundation_model_agreement_offers(modelId=model_id,offerType="ALL") print(model_agreement_offers_response) except ClientError as e: print(f"Failed to list foundation model offers for modelId: {model_id} due to the following error: {e}")

第 2 步:[仅限 Anthropic 模型需要一次性使用] 为首次使用的用户提供用例

用于填写仅适用于 Anthropic 模型的首次用户用例表单。这是在账户中访问Anthropic模型的先决条件。在所有商业区域,每个账户或每个 AWS 组织只需要使用一个 API,但需要再次填写此表单的选择加入区域除外。

文档

AWS CLI
aws bedrock put-use-case-for-model-access \ --form-data <Base64EncodedFormData>
Python
# Placeholder for form data, replace the names COMPANY_NAME = "<enter company name here>" COMPANY_WEBSITE = "<enter company website here>" INTENDED_USERS = "1" #for external users INDUSTRY_OPTION = "<enter industry option here>" OTHER_INDUSTRY_OPTION = "<enter other industry option here>" USE_CASES = "<enter use cases here>" form_data = { "companyName": COMPANY_NAME, "companyWebsite": COMPANY_WEBSITE, "intendedUsers": INTENDED_USERS, "industryOption": INDUSTRY_OPTION, "otherIndustryOption": OTHER_INDUSTRY_OPTION, "useCases": USE_CASES } form_data_json = json.dumps(form_data) model_access_response = bedrock_client.put_use_case_for_model_access(formData=form_data_json)

对于 CLI,表单数据是下表的 base64 编码的 json。

{ "companyName": COMPANY_NAME, "companyWebsite": COMPANY_WEBSITE, "intendedUsers": INTENDED_USERS, "industryOption": INDUSTRY_OPTION, "otherIndustryOption": OTHER_INDUSTRY_OPTION, "useCases": USE_CASES }
  • 公司名称:最大长度为 128 的字符串

  • COMPANY_WEBSITE:最大长度为 128 的字符串

  • 目标用户:0、1 或 2。0:内部,1:外部,2:内部和外部

  • 行业选项:最大长度为 128 的字符串

  • 其他_INDUSTRY_OPTION:最大长度为 128 的字符串

  • USE_CASES:最大长度为 8192 的字符串

第 3 步:创建基础协议范本

用于为基础模型创建协议(访问权限)。使用上方的报价代币和 modelID。

文档

AWS CLI
aws bedrock create-foundation-model-agreement \ --model-id <ModelId> \ --offer-token <OfferToken>
Python
offer_token= '' for agreement_offer in model_agreement_offers_response['offers']: if agreement_offer['offerId'] == offer_id: offer_token = agreement_offer['offerToken'] print(f"offer token found. Offer token is {offer_token}") break if(not offer_token): print(f"Offer token for modelId: {model_id} is not found") foundation_model_agreement_reponse = bedrock_client.create_foundation_model_agreement(offerToken= offer_token , modelId= model_id)

步骤 4:获取基础模型的可用性

用于检查基础模型当前是否具有访问权限。使用上面的 modelID。

文档

AWS CLI
aws bedrock get-foundation-model-availability \ --model-id <ModelId>
Python
model_availability_response = bedrock_client.get_foundation_model_availability(modelId=model_id)
预期的回应

agreementAvailability-AVAILABLE 如果存在访问权限,NOT_AVAILABLE则不存在访问权限。

{ "modelId": "anthropic.claude-sonnet-4-20250514-v1:0", "agreementAvailability": { "status": "AVAILABLE" }, "authorizationStatus": "AUTHORIZED", "entitlementAvailability": "AVAILABLE", "regionAvailability": "AVAILABLE" }

[可选] 步骤 5:删除基金会示范协议

用于删除基金会模型协议(访问权限)。使用上面的 modelID。

注意

删除模型访问权限不足以阻止将来的访问,因为调用模型会再次创建访问权限。为确保不会再次创建访问权限,请对该模型应用限制性拒绝 IAM 策略。

文档

AWS CLI
aws bedrock delete-foundation-model-agreement \ --model-id <ModelId>
Python
delete_foundation_model_agreement_reponse = bedrock_client.delete_foundation_model_agreement(modelId= model_id)

在 AWS 中访问亚马逊 Bedrock 基础模型 GovCloud (美国)

AWS GovCloud (美国)账户与标准的 AWS 商业账户关联在一起。 one-to-one此关联的商业账户用于账单、服务访问、支持目的和访问亚马逊 Bedrock Model Marketplace。有关与商业账户之间 GovCloud 关系的更多信息,请参阅 AWS GovCloud (美国)中的标准账户关联

对于第三方模型,需要在关联的 AWS 商业账户和 AWS 账户中启用模型访问权限。 GovCloud 对于 Amazon Bedrock 提供的模型,只需在 GovCloud 账户中启用模型访问权限即可。这是一个手动过程。

GovCloud 在关联的 AWS 商业账户中为 AWS 启用模型访问权限(仅适用于第三方模型)

可以通过两种方式在 AWS 商业账户中启用模型访问权限:

  1. us-east-1us-west-2地区的 AWS 商业账户调用所需的模型。

  2. 使用us-east-1us-west-2地区的 AWS 商业账户,以编程方式启用 SDK/CLI 对模型的访问权限。这可以通过按照前几节中描述的步骤来完成。

为 AWS GovCloud 账户启用模型访问权限

在 AWS GovCloud (美国)中,您可以使用该us-gov-west-1地区的 Amazon Bedrock 控制台中的模型访问页面来启用基础模型,如下所述:

  1. 确保您有权请求模型访问权限,以请求访问或修改对 Amazon Bedrock 基础模型的访问权限。建议将该AmazonBedrockFullAccess策略附加到 user/role 正在使用的策略中。

  2. 登录该us-gov-west-1地区的 Amazon Bedrock 控制台,网址为。https://console.aws.amazon.com/bedrock/

  3. 在左侧导航窗格中的 Bedrock 配置下,选择模型访问权限

  4. 模型访问权限页面上,选择修改模型访问权限

  5. 选择您希望账户有权访问的模型,并取消选择您不想让账户访问的模型。您有以下选项:

    1. 在请求访问权限之前,请务必查看终端用户许可协议 (EULA) 以了解使用模型的相关条款和条件。

    2. 选中单个模型旁边的复选框以选中或取消选中该模型。

    3. 选中顶部的复选框以选中或取消选中所有模型。

    4. 选择模型的分组方式,然后通过选中该组旁边的复选框来选中或取消选中该组中的所有模型。例如,您可以选择按提供商分组,然后选中 Cohere 旁边的复选框以选中或取消选中所有 Coher e 模型。

  6. 选择下一步

  7. 如果您添加对 Anthropic 模型的访问权限,则必须描述您的用例详细信息。选择提交应用场景详细信息,填写表单,然后选择提交表单。完成提供商的表单后,将根据您的答案通知授予还是拒绝访问权限。

  8. 查看您正在进行的访问权限更改,然后阅读条款

  9. 如果您同意这些条款,请选择提交。更改可能需要几分钟才会反映在控制台中。

  10. 如果您的请求成功,则访问状态将更改为已授予访问权限可请求