View a markdown version of this page

处理泄露的长期和短期 Amazon Bedrock API 密钥 - Amazon Bedrock

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

处理泄露的长期和短期 Amazon Bedrock API 密钥

如果您的 API 密钥遭到泄露,则应撤销其使用权限。您可以使用多种方法来撤销 Amazon Bedrock API 密钥的权限:

  • 对于长期的 Amazon Bedrock API 密钥 UpdateServiceSpecificCredentialResetServiceSpecificCredential,您可以通过以下DeleteServiceSpecificCredential方式使用、或撤消权限:

    • 将密钥状态设置为非活动。您后续可以重新激活密钥。

    • 重置密钥。此操作会为密钥生成一个新密码。

    • 永久删除密钥。

    注意

    要通过 API 执行这些操作,您必须使用 AWS 凭证进行身份验证,而不是使用 Amazon Bedrock API 密钥进行身份验证。

  • 对于长期和短期 Amazon Bedrock API 密钥,您可以附加 IAM 策略来撤销权限。

更改长期 Amazon Bedrock API 密钥的状态

如果您需要防止暂时使用密钥,请将其停用。准备好再次使用密钥后,可将其重新激活。

选择与您的首选方法对应的选项卡,然后按照以下步骤操作:

Console
停用密钥
  1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后,打开 Amazon Bedrock 控制台,网址为https://console.aws.amazon.com/bedrock

  2. 在左侧导航窗格中,选择 API 密钥

  3. Long-term API 密钥部分,选择状态为 “非活动 的密钥。

  4. 选择操作

  5. 选择停用

  6. 要进行确认,请选择停用 API 密钥。密钥的状态变为非活动

重新激活密钥
  1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后,打开 Amazon Bedrock 控制台,网址为https://console.aws.amazon.com/bedrock

  2. 在左侧导航窗格中,选择 API 密钥

  3. Long-term API 密钥部分,选择状态为 “非活动 的密钥。

  4. 选择操作

  5. 选择激活

  6. 要进行确认,请选择激活 API 密钥。密钥的状态变为活动

Python

要使用 API 停用密钥,请使用 IAM 终端节点发送UpdateServiceSpecificCredential请求并指定StatusInactive。您可以使用以下代码段停用密钥,${ServiceSpecificCredentialId}替换为创建密钥时返回的值。

import boto3 iam_client = boto3.client("iam") iam_client.update_service_specific_credential( service_specific_credential_id=${ServiceSpecificCredentialId}, status="Inactive" )

要使用 API 重新激活密钥,请使用 IAM 终端节点发送UpdateServiceSpecificCredential请求并指定StatusActive。您可以使用以下代码片段重新激活密钥,${ServiceSpecificCredentialId}替换为创建密钥时返回的值。

import boto3 iam_client = boto3.client("iam") iam_client.update_service_specific_credential( service_specific_credential_id=${ServiceSpecificCredentialId}, status="Active" )

重置长期 Amazon Bedrock API 密钥

如果您的密钥值发生泄露或您不再拥有密钥,请将其重置。密钥必须尚未过期。如果密钥已经过期,请删除它,然后创建新密钥。

选择与您的首选方法对应的选项卡,然后按照以下步骤操作:

Console
重置密钥
  1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后,打开 Amazon Bedrock 控制台,网址为https://console.aws.amazon.com/bedrock

  2. 在左侧导航窗格中,选择 API 密钥

  3. Long-term API 密钥部分,选择一个密钥。

  4. 选择操作

  5. 选择重置密钥

  6. 选择下一步

Python

要使用 API 重置密钥,请使用 IAM 终端节点发送ResetServiceSpecificCredential请求。您可以使用以下代码片段来重置密钥,${ServiceSpecificCredentialId}替换为创建密钥时返回的值。

import boto3 iam_client = boto3.client("iam") iam_client.reset_service_specific_credential( service_specific_credential_id=${ServiceSpecificCredentialId} )

删除长期 Amazon Bedrock API 密钥

如果您不再需要密钥或者密钥已过期,请删除它。

选择与您的首选方法对应的选项卡,然后按照以下步骤操作:

Console
删除密钥
  1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后,打开 Amazon Bedrock 控制台,网址为https://console.aws.amazon.com/bedrock

  2. 在左侧导航窗格中,选择 API 密钥

  3. Long-term API 密钥部分,选择一个密钥。

  4. 选择操作

  5. 选择删除

  6. 确认删除操作。

API 密钥与 IAM 用户关联

删除此 API 密钥不会删除以此密钥作为所有者创建的 IAM 用户。您可以在下一步中从 IAM 控制台中删除 IAM 用户。

Python

要使用 API 删除密钥,请使用 IAM 终端节点发送DeleteServiceSpecificCredential请求。您可以使用以下代码段删除密钥,${ServiceSpecificCredentialId}替换为创建密钥时返回的值。

import boto3 iam_client = boto3.client("iam") iam_client.delete_service_specific_credential( service_specific_credential_id=${ServiceSpecificCredentialId} )

附加 IAM 策略以移除 Amazon Bedrock API 密钥的使用权限

本部分提供了一些 IAM 策略,您可以用来限制对 Amazon Bedrock API 密钥的访问。

拒绝某个身份使用 Amazon Bedrock API 密钥进行调用的能力

允许身份使用 Amazon Bedrock API 密钥进行调用的操作是 bedrock:CallWithBearerToken。为了防止身份使用 Amazon Bedrock API 密钥进行调用,您可以根据密钥类型为身份附加一个 IAM 策略:

  • Long-term key — 将策略附加到与密钥关联的 IAM 用户。

  • Short-term key — 将策略附加到用于生成密钥的 IAM 身份。

您可以附加到 IAM 身份的 IAM 策略如下所示:

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Deny", "Action": "bedrock:CallWithBearerToken", "Resource": "*" } }

使 IAM 会话失效

如果短期密钥被泄露,您可以通过使用于生成密钥的会话失效来防止其使用。要使会话失效,请将以下策略附加到生成密钥的 IAM 身份。2014-05-07T23:47:00Z替换为您希望会话失效的时间。

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "DateLessThan": {"aws:TokenIssueTime": "2014-05-07T23:47:00Z"} } } }