本頁面說明如何建立、停用及刪除與專案中服務帳戶相關聯的雜湊式訊息驗證碼 (HMAC) 金鑰。
事前準備
如要在 Cloud Storage 中使用這項功能,請先確認您符合下列條件:
具備足夠權限,可在所選專案中使用 HMAC 金鑰:
如果您擁有該專案,代表您非常可能已具備必要的權限。
您應該具備該專案的 IAM 權限 (前置字串須為
storage.hmacKeys)。如要瞭解如何取得具備這些權限的角色 (例如 Storage HMAC 金鑰管理員),請參閱「使用 IAM 權限」。
在專案中建立服務帳戶,並打算為該帳戶建立 HMAC 金鑰。如果目前沒有服務帳戶,請參閱「建立服務帳戶」。
請確認下列組織政策限制已停用:
constraints/storage.restrictAuthTypes(HMAC 金鑰驗證必須停用)
如要瞭解如何檢查及停用限制,請參閱「建立及管理組織政策」。
建立 HMAC 金鑰
如何為服務帳戶建立 HMAC 金鑰:
控制台
- 前往 Google Cloud 控制台的 Cloud Storage「Settings」(設定) 頁面。
選取 [Interoperability] (互通性) 分頁標籤。
按一下「add_box」 為服務帳戶建立金鑰。
選取您要與 HMAC 金鑰建立關聯的服務帳戶。
按一下 [Create key] (建立金鑰)。
如要瞭解如何在 Google Cloud 控制台中取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」。
指令列
使用 hmac create 指令:
gcloud storage hmac create SERVICE_ACCOUNT_EMAIL
其中 SERVICE_ACCOUNT_EMAIL 是與服務帳戶相關聯的電子郵件地址。例如:example-service-account@my-pet-project.iam.gserviceaccount.com。
如果成功,回應會包含 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呼叫 JSON API,並傳送POSThmacKeys 要求: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是與服務帳戶相關聯的電子郵件地址。例如:example-service-account@my-pet-project.iam.gserviceaccount.com。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL透過POSTHMAC 金鑰要求呼叫 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是與您的服務帳戶相關聯的電子郵件地址。例如:example-service-account@my-pet-project.iam.gserviceaccount.com。
取得 HMAC 金鑰資訊
如要列出專案的 HMAC 金鑰,並取得金鑰相關資訊:
控制台
- 前往 Google Cloud 控制台的 Cloud Storage「Settings」(設定) 頁面。
選取 [Interoperability] (互通性) 分頁標籤。
與 HMAC 金鑰相關聯的服務帳戶會顯示在「Service account HMAC」(服務帳戶 HMAC) 專區的「Access keys for service accounts」(服務帳戶的存取金鑰) 子專區中。
按一下特定服務帳戶的名稱,即可查看與該帳戶相關聯的 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呼叫 JSON API,並傳送LISThmacKeys 要求: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透過GETHMAC 金鑰要求呼叫 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是與您的服務帳戶相關聯的電子郵件地址。例如:example-service-account@my-pet-project.iam.gserviceaccount.com。
更新 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呼叫 JSON API,並傳送PUThmacKeys 要求: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呼叫 XML API,並發出POSTHMAC 金鑰要求: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「Settings」(設定) 頁面。
選取 [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呼叫 JSON API,並傳送DELETEhmacKeys 要求: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呼叫 XML API,並發出POSTHMAC 金鑰要求: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 金鑰。