本文為您介紹什麼是AccessKey,以及如何建立RAM使用者和阿里雲帳號(主帳號)的存取金鑰AccessKey(簡稱AK)。
什麼是AccessKey
存取金鑰AccessKey(簡稱AK)是阿里雲提供給使用者的長期訪問憑證,由AccessKey ID和AccessKey Secret組成的一組金鑰組。
AccessKey ID:存取金鑰的唯一公開標識符。
AccessKey Secret:存取金鑰的密文部分。用於對API請求進行簽名,以驗證請求的真實性和完整性。AccessKey Secret必須嚴格保密。
為降低AccessKey泄露的風險,AccessKey Secret 只在建立時顯示一次,後續無法查看。請務必妥善保管。
如何使用AccessKey
AccessKey不能用於控制台登入,而是用於以程式性的方式(如使用CLI、SDK、Terraform等)調用阿里雲API。
根據阿里雲的最佳實務,程式或服務應儘可能避免直接使用AccessKey來訪問阿里雲資源。阿里雲提供了多種無AK方案,協助您使用安全性更高的臨時身份憑證(STS Token)訪問阿里雲資源。具體使用案例請參考:應用開發情境。
如確有需要建立和使用AccessKey,請參考使用AccessKey的最佳實務:正確保管和使用不可避免的AccessKey。
AccessKey的工作原理
AccessKey ID和AccessKey Secret由存取控制(RAM)根據演算法產生,阿里雲對其儲存及傳輸均進行加密。
當程式使用AK發起請求時,請求會攜帶AccessKey ID以及使用AccessKey Secret加密請求內容產生的簽名。阿里雲收到請求後,會對其進行身分識別驗證及請求合法性校正。關於阿里雲所採用的具體簽名機制,請參見V3版本請求體&簽名機制。
AccessKey分類
AccessKey歸屬於阿里雲帳號或RAM使用者。依據所屬主體類型,可以將AccessKey分為以下兩類:
阿里雲帳號(主帳號)AccessKey(不推薦)
由阿里雲帳號(主帳號)直接建立,預設擁有當前帳號下的全部操作許可權,可對所有資源執行管理。一旦主帳號 AccessKey 泄露,風險極高。強烈建議不建立和使用主帳號AccessKey。
RAM使用者AccessKey(推薦)
屬於RAM使用者的程式訪問憑證。需要先建立RAM使用者,然後才能為其建立AccessKey。RAM使用者AccessKey繼承RAM使用者的許可權,可以進行最小化許可權管理。建議針對每一個獨立業務應用程式指派一個獨立的RAM使用者和AccessKey,防止因混用造成許可權過大或泄露風險擴大。
許可權需求
由於主帳號許可權過大,實際環境中應盡量避免使用主帳號建立AccessKey,轉而使用被授予相應許可權的RAM使用者來建立和管理AccessKey(主帳號AccessKey除外)。
您可以為管理員授予
AliyunRAMFullAccess(Resource Access Management員)系統策略,以允許其建立和管理RAM使用者的AccessKey。您也可以開啟RAM全域安全設定中的允許使用者管理AccessKey選項(詳情請參見管理RAM使用者安全設定),允許使用者管理自己的AccessKey。
說明開啟該設定意味著所有RAM使用者均可自主管理自己的AccessKey(包括建立、禁用、刪除等所有AccessKey相關操作),除非管理員為其分配顯式拒絕AccessKey操作的權限原則。
在生產環境中不建議開啟該設定。如需允許特定使用者自主管理AccessKey,建議使用自訂策略,並將
Resource限定在使用者本人。參考策略如下:允許自主建立AccessKey
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ram:CreateAccessKey", "ram:ListAccessKeys" ], "Resource": "acs:ram:*:ACCOUNT_ID:user/USER_NAME" } ] }允許使用者自主管理AccessKey
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ram:CreateAccessKey", "ram:ListAccessKeys", "ram:UpdateAccessKey", "ram:DeleteAccessKey", "ram:GetAccessKeyLastUsed", "ram:ListAccessKeysInRecycleBin" ], "Resource": "acs:ram:*:ACCOUNT_ID:user/USER_NAME" } ] }
建立RAM使用者的AccessKey
請使用Resource Access Management員(AliyunRAMFullAccess)完成以下操作。如果您的帳號中還沒有任何RAM使用者,請參考建立RAM使用者。
RAM使用者自主建立AccessKey的操作步驟同建立阿里雲帳號(主帳號)的AccessKey。
控制台
登入RAM控制台。在左側導覽列選擇。
在使用者列表中,找到目標 RAM 使用者,單擊其名稱。
在認證管理頁簽下的AccessKey地區,單擊建立AccessKey。
說明每個 RAM 使用者最多允許建立 2 個 AccessKey。一個正常使用,另一個在需要輪轉時建立,用於替換舊的AccessKey。
在彈出的對話方塊中,閱讀AccessKey使用情境及使用建議,建議您遵從使用建議選擇更合適的憑據方案。如必須建立AccessKey,請選擇對應使用情境,勾選我確認必須建立AccessKey,然後單擊繼續建立。建立的AccessKey不受使用情境的影響。

根據介面提示完成安全驗證。
在建立AccessKey對話方塊,儲存AccessKey ID和AccessKey Secret,然後單擊確定。
配置AccessKey網路訪問限制策略(可選):您可以限制使用永久AccessKey的API請求來源IP地址,將AccessKey調用來源控制在可信的網路環境內,提升AccessKey的安全性。建議您明確AccessKey使用的網路環境,然後單擊配置網路存取原則。具體操作請參見配置RAM使用者的AccessKey級網路訪問限制策略。
重要為降低AccessKey泄露的風險,AccessKey Secret 只在建立時顯示一次,後續無法查看。請務必妥善保管。
OpenAPI
調用CreateAccessKey介面建立AccessKey,並傳入以下參數:
UserPrincipalName:AccessKey綁定使用者的登入名稱稱,格式為test@example.onaliyun.com。使用者的登入名稱稱可在RAM控制台查看。
為降低AccessKey泄露的風險,AccessKey Secret 只在調用CreateAccessKey介面時顯示,後續無法查看。請務必妥善保管。
建立阿里雲帳號(主帳號)的AccessKey(不推薦)
如非必要,強烈不建議建立和使用主帳號AccessKey。在建立和使用主帳號AccessKey之前,請先評估是否可以使用RAM使用者AccessKey替代。
使用阿里雲帳號(主帳號)登入阿里雲控制台。
將滑鼠懸浮在右上方的帳號表徵圖上,單擊AccessKey。

在不建議使用雲帳號AccessKey對話方塊,閱讀建立主帳號AccessKey的風險,如果必須建立主帳號AccessKey,勾選我確認知曉雲帳號AccessKey安全風險,然後單擊繼續使用雲帳號AccessKey。

在AccessKey頁面,單擊建立AccessKey。
說明阿里雲帳號最多允許建立 2 個 AccessKey。一個正常使用,另一個在需要輪轉時建立,用於替換舊的AccessKey。
在建立雲帳號AccessKey對話方塊,再次閱讀建立主帳號AccessKey的風險及使用限制,如果確定要建立主帳號AccessKey,勾選我確認知曉雲帳號AccessKey安全風險,然後單擊繼續使用雲帳號AccessKey。

在建立AccessKey對話方塊,儲存AccessKey ID和AccessKey Secret,然後勾選我已儲存好AccessKey Secret,最後單擊確定。
配置AccessKey網路訪問限制策略(推薦):您可以限制使用永久AccessKey的API請求來源IP地址,將AccessKey調用來源控制在可信的網路環境內,提升AccessKey的安全性。建議您明確AccessKey使用的網路環境,然後單擊配置網路存取原則。具體操作請參見配置主帳號的AccessKey級網路訪問限制策略。
重要為降低AccessKey泄露的風險,阿里雲帳號(主帳號)的AccessKey Secret只在建立時顯示,後續不支援查看,請妥善保管。