

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 處理已洩露的長期和短期 Amazon Bedrock API 金鑰
<a name="api-keys-revoke"></a>

如果您的 API 金鑰已洩露，您應該撤銷使用它的許可。您可以使用多種方法來撤銷 Amazon Bedrock API 金鑰的許可：
+ 對於長期 Amazon Bedrock API 金鑰，您可以使用 [UpdateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html)、[ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.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.  AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

1. 在左側導覽窗格中，選取**API 金鑰**。

1. 在**長期 API 金鑰**區段中，選擇**狀態**為**非作用中**的金鑰。

1. 選擇**動作**。

1. 選取 **Deactivate** (停用)。

1. 確認後，請選取**停用 API 金鑰**。金鑰的**狀態**會變成**非作用中**。

**重新啟用金鑰**

1.  AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

1. 在左側導覽窗格中，選取**API 金鑰**。

1. 在**長期 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.  AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

1. 在左側導覽窗格中，選取**API 金鑰**。

1. 在**長期 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.  AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

1. 在左側導覽窗格中，選取**API 金鑰**。

1. 在**長期 API 金鑰**區段中，選擇金鑰。

1. 選擇**動作**。

1. 選取**刪除**。

1. 確認刪除。

**API 金鑰與 IAM 使用者連結**  
刪除此 API 金鑰不會刪除使用此金鑰建立的 IAM 使用者做為擁有者。您可以在下一個步驟中從 IAM 主控台刪除 IAM 使用者。

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

若要使用 API 刪除金鑰，請傳送 [DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html.html) 請求與 [IAM 端點](https://docs.aws.amazon.com/general/latest/gr/iam-service.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 政策：
+ **長期金鑰** – 將政策連接至與金鑰相關聯的 IAM 使用者。
+ **短期金鑰** – 將政策連接至用於產生金鑰的 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}}"}
    }
  }
}
```

------