View a markdown version of this page

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

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

AWS 服務的 API 金鑰

您可以透過 存取 AWS 服務, AWS 管理主控台 並使用 AWS CLI 或 AWS API 以程式設計方式存取 服務。對 Amazon Bedrock 和 Amazon CloudWatch Logs 等服務提出程式設計請求時,您可以使用 IAM 登入資料 (例如臨時安全登入資料或長期存取金鑰) 或 API 金鑰進行身分驗證。API 金鑰有兩種類型:

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

  • 短期 API 金鑰 (僅 Amazon Bedrock 支援) – 短期 API 金鑰是使用 AWS Signature 第 4 版的預先簽章 URL。短期 API 金鑰與產生 API 金鑰的身分憑證具有相同的許可和過期時間,有效期最長為 12 小時或主控台工作階段的剩餘時間,以較短者為準。您可以使用 Amazon Bedrock 主控台、Python 套件 aws-bedrock-token-generator 和其他程式設計語言套件來產生短期 API 金鑰。如需詳細資訊,請參閱 Amazon Bedrock User Guide 中的 Generate Amazon Bedrock API keys for easy access to the Amazon Bedrock API

注意

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

支援的服務

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

# 服務 長期 API 金鑰 短期 API 金鑰 自動連接的受管政策
1 Amazon Bedrock AmazonBedrockLimitedAccess
2 Amazon CloudWatch Logs N/A CloudWatchLogsAPIKeyAccess

當您為服務產生長期 API 金鑰時,對應的 AWS 受管政策會自動連接到 IAM 使用者,以授予該服務的核心操作存取權。如果您需要額外的存取權,您可以修改 IAM 使用者的許可。如需有關修改許可的資訊,請參閱新增和移除 IAM 身分許可。如需如何使用 Amazon Bedrock 金鑰的詳細資訊,請參閱《Amazon Bedrock 使用者指南》中的使用 Amazon Bedrock API 金鑰如需如何為 Amazon CloudWatch Logs 使用承載字符的詳細資訊,請參閱CloudWatch Logs 使用者指南》中的承載字符身分驗證

長期 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 命令建立將與 Amazon Bedrock 或 Amazon CloudWatch Logs 搭配使用的 IAM 使用者: https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-user.html

    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

    對於 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

    對於 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 Amazon CloudWatch Logs)。

若要列出帳戶中的所有長期 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 金鑰 (Amazon Bedrock)

Amazon Bedrock 目前僅支援短期 API 金鑰。如需有關產生和使用短期 API 金鑰的資訊,請參閱《Amazon Bedrock 使用者指南》中的產生 API 金鑰

服務特定的資訊