View a markdown version of this page

AWS 服務的 API 金鑰 - AWS Identity and Access Management

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

AWS 服務的 API 金鑰

除了標準 IAM 登入資料,例如臨時安全登入資料和長期存取金鑰,某些 AWS 服務還支援用於驗證程式設計請求的 API 金鑰。 AWS 提供兩種類型的 API 金鑰:

  • 長期 API 金鑰 – 長期 API 金鑰與 IAM 使用者相關聯,並使用 IAM 服務特定的憑證產生。這些登入資料僅供單一 AWS 服務使用,透過限制登入資料範圍來增強安全性。您可以設定長期 API 金鑰的過期時間。若要產生長期 API 金鑰,您可以使用 IAM 或服務特定的主控台 AWS CLI、 或 AWS API。

  • 短期 API 金鑰 – 短期 API 金鑰是使用 AWS Signature 第 4 版的預先簽章 URL。短期 API 金鑰與產生 API 金鑰的身分憑證具有相同的許可和過期時間,有效期最長為 12 小時或主控台工作階段的剩餘時間,以較短者為準。您可以使用 Amazon Bedrock/AWS 上的 Claude Platform 主控台、Python 和其他程式設計語言的套件來產生短期 API 金鑰。如需詳細資訊,請參閱《Amazon Bedrock 使用者指南》中的產生 Amazon Bedrock API 金鑰AWS 上的 Claude Platform 《 使用者指南》中的身分驗證

注意

與短期 API 金鑰相比,長期 API 金鑰的安全風險更高。建議盡可能使用短期 API 金鑰或臨時安全憑證。如果使用長期 API 金鑰,建議定期輪換金鑰。

支援 API 金鑰的服務

下表列出支援 API 金鑰 AWS 的服務,以及每個服務支援的 API 金鑰類型。

# 服務 長期 API 金鑰 短期 API 金鑰 自動連接的受管政策 服務特定文件
1 Amazon Bedrock AmazonBedrockLimitedAccess 使用 Amazon Bedrock API 金鑰
2 AWS 上的 Claude Platform AnthropicInferenceAccess 身分驗證
3 Amazon CloudWatch N/A CloudWatchAPIKeyAccess 設定指標的承載字符身分驗證
4 Amazon CloudWatch Logs N/A CloudWatchLogsAPIKeyAccess 設定承載字符身分驗證

當您為服務產生長期 API 金鑰時,對應的 AWS 受管政策會自動連接到 IAM 使用者,以授予該服務的核心操作存取權。如果您需要額外的存取權,您可以修改 IAM 使用者的許可。如需有關修改許可的資訊,請參閱新增和移除 IAM 身分許可

若要進一步了解特定 服務的 API 金鑰,請參閱上表中的服務特定文件連結。

長期 API 金鑰的先決條件

在 IAM 主控台中產生長期 API 金鑰之前,您必須符合下列先決條件:

  • 用於與長期 API 金鑰建立關聯的 IAM 使用者。如需有關建立 IAM 使用者的說明,請參閱在 中建立 IAM 使用者 AWS 帳戶

  • 您必須擁有下列 IAM 政策許可,才能管理 IAM 使用者的服務特定憑證。此範例政策授予建立、列出、更新、刪除和重設服務特定憑證的許可。將 Resource 元素中的username值取代為您將產生長期 API 金鑰的 IAM 使用者名稱:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "ManageBedrockServiceSpecificCredentials", "Effect": "Allow", "Action": [ "iam:CreateServiceSpecificCredential", "iam:ListServiceSpecificCredentials", "iam:UpdateServiceSpecificCredential", "iam:DeleteServiceSpecificCredential", "iam:ResetServiceSpecificCredential" ], "Resource": "arn:aws:iam::*:user/username" } ] }

產生長期 API 金鑰 (主控台)

在 IAM 主控台中為特定服務產生長期 API 金鑰
  1. 登入 AWS 管理主控台 ,並在 https://https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在 IAM 主控台的導覽面板中,選擇使用者

  3. 選擇您要為其產生長期 API 金鑰的 IAM 使用者。

  4. 選擇 Security credentials (安全憑證) 索引標籤。

  5. API 金鑰區段中,選擇產生 API 金鑰

  6. AWS 服務下拉式清單中,選擇您要 API 金鑰進行身分驗證的服務。

  7. 對於 API 金鑰過期,請執行下列其中一項操作:

    • 選擇 153090365 天的 API 金鑰過期持續時間。

    • 選擇自訂持續時間以指定自訂 API 金鑰過期日期。

    • 選擇永不過期 (不建議)。

  8. 選擇產生 API 金鑰

  9. 複製或下載您的 API 金鑰。這是您唯一可以檢視 API 金鑰值的機會。

    重要

    請妥善儲存您的 API 金鑰。關閉此對話方塊之後,您將無法再次擷取此 API 金鑰。如果您遺失或忘記 API 金鑰,則無法擷取它。反之,請產生新的 API 金鑰並將舊金鑰設為非作用中。

產生長期 API 金鑰 (AWS CLI)

若要使用 產生長期 API 金鑰 AWS CLI,請使用下列步驟:

  1. 使用 create-user 命令建立將與 服務搭配使用的 IAM 使用者

    aws iam create-user \ --user-name APIKeyUser_1
  2. 使用 attach-user-policy 命令將 AWS 受管政策連接至 IAM 使用者。

    對於 Amazon Bedrock:

    aws iam attach-user-policy --user-name APIKeyUser_1 \ --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess

    對於 AWS 上的 Claude Platform:

    aws iam attach-user-policy --user-name APIKeyUser_1 \ --policy-arn arn:aws:iam::aws:policy/AnthropicInferenceAccess

    對於 Amazon CloudWatch:

    aws iam attach-user-policy --user-name APIKeyUser_1 \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAPIKeyAccess

    對於 Amazon CloudWatch Logs:

    aws iam attach-user-policy --user-name APIKeyUser_1 \ --policy-arn arn:aws:iam::aws:policy/CloudWatchLogsAPIKeyAccess
  3. 使用 create-service-specific-credential 命令產生長期 API 金鑰。

    對於 Amazon Bedrock:

    aws iam create-service-specific-credential \ --user-name APIKeyUser_1 \ --service-name bedrock.amazonaws.com \ --credential-age-days 30

    對於 AWS 上的 Claude Platform:

    aws iam create-service-specific-credential \ --user-name APIKeyUser_1 \ --service-name aws-external-anthropic.amazonaws.com \ --credential-age-days 30

    對於 Amazon CloudWatch:

    aws iam create-service-specific-credential \ --user-name APIKeyUser_1 \ --service-name cloudwatch.amazonaws.com \ --credential-age-days 30

    對於 Amazon CloudWatch Logs:

    aws iam create-service-specific-credential \ --user-name APIKeyUser_1 \ --service-name logs.amazonaws.com \ --credential-age-days 30
    注意

    --credential-age-days 為選用參數。您可以指定介於 1–36600 天之間的值。如果您省略此參數,API 金鑰不會過期。

回應ServiceApiKeyValue中傳回的 是個別服務的長期 API 金鑰。請妥善儲存 ServiceApiKeyValue 值,因為您之後將無法再擷取它。

列出長期 API 金鑰 (AWS CLI)

若要列出特定使用者的長期 API 金鑰中繼資料,請使用 list-service-specific-credentials 命令搭配 --user-name 參數:

aws iam list-service-specific-credentials \ --service-name bedrock.amazonaws.com \ --user-name APIKeyUser_1
注意

bedrock.amazonaws.com 以適當的服務名稱取代 (例如,logs.amazonaws.com.rproxy.goskope.comAmazon CloudWatch Logs 或 aws-external-anthropic.amazonaws.com AWS 上的 Claude Platform)。

若要列出帳戶中的所有長期 API 金鑰中繼資料,請使用 list-service-specific-credentials 命令搭配 --all-users 參數:

aws iam list-service-specific-credentials \ --service-name bedrock.amazonaws.com \ --all-users

更新長期 API 金鑰的狀態 (AWS CLI)

若要更新長期 API 金鑰的狀態,請使用 update-service-specific-credential 命令:

aws iam update-service-specific-credential \ --user-name "APIKeyUser_1" \ --service-specific-credential-id "ACCA1234EXAMPLE1234" \ --status Inactive|Active

產生長期 API 金鑰 (AWS API)

您可以使用下列 IAM API 操作來管理任何支援服務的長期 API 金鑰:

短期 API 金鑰 (選取服務)

選取的服務目前支援短期 API 金鑰。

如需有關搭配 Amazon Bedrock 產生和使用短期 API 金鑰的資訊,請參閱《Amazon Bedrock 使用者指南》中的產生 API 金鑰

如需有關為 產生和使用短期 API 金鑰的資訊 AWS 上的 Claude Platform,請參閱AWS 上的 Claude Platform 《 使用者指南》中的身分驗證

服務特定的資訊