

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

# 处理泄露的长期和短期 Amazon Bedrock API 密钥
<a name="api-keys-revoke"></a>

如果您的 API 密钥遭到泄露，则应撤销其使用权限。您可以使用多种方法来撤销 Amazon Bedrock API 密钥的权限：
+ 对于长期的 Amazon Bedrock API 密钥 [UpdateServiceSpecificCredential[ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html.html)](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html)，您可以通过以下[DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html.html)方式使用、或撤消权限：
  + 将密钥状态设置为非活动。您后续可以重新激活密钥。
  + 重置密钥。此操作会为密钥生成一个新密码。
  + 永久删除密钥。
**注意**  
要通过 API 执行这些操作，您必须使用 AWS 凭证进行身份验证，而不是使用 Amazon Bedrock API 密钥进行身份验证。
+ 对于长期和短期 Amazon Bedrock API 密钥，您可以附加 IAM 策略来撤销权限。

**Topics**
+ [更改长期 Amazon Bedrock API 密钥的状态](#api-keys-change-status)
+ [重置长期 Amazon Bedrock API 密钥](#api-keys-reset)
+ [删除长期 Amazon Bedrock API 密钥](#api-keys-delete)
+ [附加 IAM 策略以移除 Amazon Bedrock API 密钥的使用权限](#api-keys-iam-policies)

## 更改长期 Amazon Bedrock API 密钥的状态
<a name="api-keys-change-status"></a>

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

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

------
#### [ Console ]

**停用密钥**

1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后，打开 Amazon Bedrock 控制台，网址为[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 在左侧导航窗格中，选择 **API 密钥**。

1. 在 **Long-term API 密钥**部分，选择**状态为 “**非活动**”** 的密钥。

1. 选择**操作**。

1. 选择**停用**。

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

**重新激活密钥**

1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后，打开 Amazon Bedrock 控制台，网址为[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 在左侧导航窗格中，选择 **API 密钥**。

1. 在 **Long-term API 密钥**部分，选择**状态为 “**非活动**”** 的密钥。

1. 选择**操作**。

1. 选择**激活**。

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

------
#### [ Python ]

要使用 API 停用密钥，请使用 [IAM 终端节点](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)发送[UpdateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html)请求并指定`Status`为`Inactive`。您可以使用以下代码段停用密钥，{{${ServiceSpecificCredentialId}}}替换为创建密钥时返回的值。

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

要使用 API 重新激活密钥，请使用 [IAM 终端节点](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)发送[UpdateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html)请求并指定`Status`为`Active`。您可以使用以下代码片段重新激活密钥，{{${ServiceSpecificCredentialId}}}替换为创建密钥时返回的值。

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

------

## 重置长期 Amazon Bedrock API 密钥
<a name="api-keys-reset"></a>

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

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

------
#### [ Console ]

**重置密钥**

1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后，打开 Amazon Bedrock 控制台，网址为[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 在左侧导航窗格中，选择 **API 密钥**。

1. 在 **Long-term API 密钥**部分，选择一个密钥。

1. 选择**操作**。

1. 选择**重置密钥**。

1. 选择**下一步**。

------
#### [ Python ]

要使用 API 重置密钥，请使用 [IAM 终端节点](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)发送[ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html.html)请求。您可以使用以下代码片段来重置密钥，{{${ServiceSpecificCredentialId}}}替换为创建密钥时返回的值。

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

------

## 删除长期 Amazon Bedrock API 密钥
<a name="api-keys-delete"></a>

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

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

------
#### [ Console ]

**删除密钥**

1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后，打开 Amazon Bedrock 控制台，网址为[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 在左侧导航窗格中，选择 **API 密钥**。

1. 在 **Long-term API 密钥**部分，选择一个密钥。

1. 选择**操作**。

1. 选择**删除**。

1. 确认删除操作。

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

------
#### [ Python ]

要使用 API 删除密钥，请使用 [IAM 终端节点](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)发送[DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html.html)请求。您可以使用以下代码段删除密钥，{{${ServiceSpecificCredentialId}}}替换为创建密钥时返回的值。

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

------

## 附加 IAM 策略以移除 Amazon Bedrock API 密钥的使用权限
<a name="api-keys-iam-policies"></a>

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

### 拒绝某个身份使用 Amazon Bedrock API 密钥进行调用的能力
<a name="api-keys-iam-policies-deny-call-with-bearer-token"></a>

允许身份使用 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 会话失效
<a name="api-keys-iam-policies-invalidate-session"></a>

如果短期密钥被泄露，您可以通过使用于生成密钥的会话失效来防止其使用。要使会话失效，请将以下策略附加到生成密钥的 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}}"}
    }
  }
}
```

------