本頁說明如何建立、停用及刪除與專案中服務帳戶相關聯的雜湊架構訊息驗證代碼 (HMAC) 金鑰。
事前準備
如要在 Cloud Storage 中使用這項功能,必須符合下列條件:
取得足夠的權限,以使用所選專案中的 HMAC 金鑰:
如果您擁有該專案,代表您非常可能已具備必要的權限。
您應該具備該專案的 IAM 權限 (前置字串須為
storage.hmacKeys
)。請參閱「使用 IAM 權限」一文中的操作說明,瞭解如何取得具有這些權限的角色,例如「Storage HMAC 金鑰管理員」。
在您的專案中有一個要為其建立 HMAC 金鑰的服務帳戶。如果您還沒有服務帳戶,請參閱建立服務帳戶。
請確保下列組織政策限制已停用:
constraints/storage.restrictAuthTypes
(必須停用,才能進行 HMAC 金鑰驗證)
如要瞭解如何檢查及停用限制,請參閱「建立及管理機構政策」一文。
建立 HMAC 金鑰
如何為服務帳戶建立 HMAC 金鑰:
控制台
- 前往 Google Cloud 控制台的 Cloud Storage「設定」頁面。
選取 [Interoperability] (互通性) 分頁標籤。
按一下 add_box「為服務帳戶建立金鑰」。
選取您要與 HMAC 金鑰建立關聯的服務帳戶。
按一下 [Create key] (建立金鑰)。
如要瞭解如何透過 Google Cloud 控制台取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
使用 hmac create
指令:
gcloud storage hmac create SERVICE_ACCOUNT_EMAIL
其中,SERVICE_ACCOUNT_EMAIL
是與您的服務帳戶相關聯的電子郵件地址。例如:[email protected]
。
如果成功,回應會包含 HMAC 金鑰資源,包括 accessId
和 secret
的值。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Terraform
您可以使用 Terraform 資源建立 HMAC 金鑰。這個範例也包含建立服務帳戶的資源。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過POST
hmacKeys 要求呼叫 JSON API:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys?serviceAccountEmail=SERVICE_ACCOUNT_EMAIL"
其中:
PROJECT_IDENTIFIER
是與您要建立的金鑰相關聯的專案 ID 或編號。例如:my-pet-project
。- 其中,
SERVICE_ACCOUNT_EMAIL
是與您的服務帳戶相關聯的電子郵件地址。例如:[email protected]
。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過POST
HMAC 金鑰要求呼叫 XML API:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=CreateAccessKey&UserName=SERVICE_ACCOUNT_EMAIL"
其中,
SERVICE_ACCOUNT_EMAIL
是與您的服務帳戶相關聯的電子郵件地址。例如:[email protected]
。
取得 HMAC 金鑰資訊
如要列出專案的 HMAC 金鑰,並取得金鑰相關資訊:
控制台
- 前往 Google Cloud 控制台的 Cloud Storage「設定」頁面。
選取 [Interoperability] (互通性) 分頁標籤。
與 HMAC 金鑰建立關聯的服務帳戶會顯示在「服務帳戶 HMAC」專區的「服務帳戶存取金鑰」子專區中。
按一下特定服務帳戶的名稱,即可查看與該帳戶相關聯的 HMAC 金鑰,以及這些金鑰的狀態。
指令列
使用
hmac list
指令列出專案中的 hmac 金鑰:gcloud storage hmac list
如果執行成功,指令會傳回 hmac 金鑰存取權 ID 清單,以及每個金鑰的狀態和與每個金鑰相關聯的服務帳戶。
使用
hmac describe
指令擷取特定金鑰的中繼資料:gcloud storage hmac describe KEY_ACCESS_ID
其中
KEY_ACCESS_ID
是所需金鑰的存取權 ID。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過LIST
hmacKeys 要求呼叫 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys"
其中
PROJECT_IDENTIFIER
是與您要列出金鑰相關聯的專案 ID 或編號。例如:my-pet-project
。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過GET
HMAC 金鑰要求呼叫 XML API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=ListAccessKeys&UserName=SERVICE_ACCOUNT_EMAIL"
其中,
SERVICE_ACCOUNT_EMAIL
是與您的服務帳戶相關聯的電子郵件地址。例如:[email protected]
。
更新 HMAC 金鑰的狀態
如何將 HMAC 金鑰切換為有效和停用狀態:
控制台
- 前往 Google Cloud 控制台的 Cloud Storage「設定」頁面。
選取 [Interoperability] (互通性) 分頁標籤。
在「服務帳戶的存取金鑰」子區段中,按一下與要更新狀態的 HMAC 金鑰相關聯的服務帳戶名稱。
按一下要更新的金鑰狀態。
如要將金鑰狀態從「停用」變更為「啟用」,請在顯示的視窗中按一下「停用」。
如果將金鑰狀態從「有效」變更為「無效」,則不需要執行其他步驟。
指令列
使用 hmac update
指令:
gcloud storage hmac update ACCESS_KEY_ID STATE
其中:
ACCESS_KEY_ID
是與您要更新的金鑰相關聯的存取權 ID。STATE
可以是--activate
或--deactivate
。
如果執行成功,指令會傳回 HMAC 金鑰的更新後中繼資料。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。建立包含下列資訊的 JSON 檔案:
{"state": "STATE"}
其中
STATE
是金鑰的所需 狀態。例如:INACTIVE
。使用
cURL
透過PUT
hmacKeys 要求呼叫 JSON API:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
其中:
JSON_FILE_NAME
是您在步驟 2 建立的檔案路徑。PROJECT_IDENTIFIER
是與您要更新的金鑰相關聯的專案 ID 或編號。例如:my-pet-project
。ACCESS_KEY_ID
是與您要更新的金鑰相關聯的存取權 ID。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過POST
HMAC 金鑰要求呼叫 XML API:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=UpdateAccessKey&AccessKeyId=ACCESS_KEY_ID&Status=STATUS"
其中:
ACCESS_KEY_ID
是與您要更新的金鑰相關聯的存取權 ID。STATUS
是金鑰的所需狀態。例如:Inactive
。
變更 HMAC 金鑰的狀態後,最多需要 3 分鐘,狀態變更才會全面套用到 Cloud Storage 系統。因此,您應先停用 HMAC 金鑰,至少等待 3 分鐘再刪除金鑰。
刪除 HMAC 金鑰
HMAC 金鑰必須處於停用狀態才能刪除。如何刪除停用的 HMAC 金鑰:
控制台
- 前往 Google Cloud 控制台的 Cloud Storage「設定」頁面。
選取 [Interoperability] (互通性) 分頁標籤。
在「Access keys for service accounts」(服務帳戶的存取金鑰) 子部分中,按一下與要刪除的 HMAC 金鑰相關聯的服務帳戶名稱。
按一下與您要刪除的金鑰相關的垃圾桶圖示。
在隨即顯示的對話方塊中,輸入存取金鑰 ID 的前 10 個字元 (如視窗中提供的內容)。
點選「刪除」。
指令列
使用 hmac delete
指令:
gcloud storage hmac delete ACCESS_KEY_ID
其中 ACCESS_KEY_ID
是與您要刪除的金鑰相關聯的存取權 ID。
如果執行成功,指令不會傳回回應。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過DELETE
hmacKeys 要求呼叫 JSON API:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
其中:
PROJECT_IDENTIFIER
是與要刪除的金鑰相關聯的專案 ID 或編號。例如:my-pet-project
。ACCESS_KEY_ID
是與要刪除的金鑰相關聯的存取權 ID。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過POST
HMAC 金鑰要求呼叫 XML API:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=DeleteAccessKey&AccessKeyId=ACCESS_KEY_ID"
其中
ACCESS_KEY_ID
是與要刪除的金鑰相關聯的存取權 ID。
後續步驟
- 請遵循相關遷移指南,將使用者帳戶 HMAC 金鑰遷移到服務帳戶 HMAC 金鑰。
- 在通過驗證的要求中使用 HMAC 金鑰。