本頁說明如何建立、停用及刪除與專案中服務帳戶相關聯的雜湊架構訊息驗證代碼 (HMAC) 金鑰。
事前準備
如要在 Cloud Storage 中使用這項功能,必須符合下列條件:
取得足夠的權限,以使用所選專案中的 HMAC 金鑰:
如果您擁有該專案,代表您非常可能已具備必要的權限。
您應該具備該專案的 IAM 權限 (前置字串須為
storage.hmacKeys
)。請參閱「使用 IAM 權限」一文中的操作說明,瞭解如何取得具有這些權限的角色,例如「Storage HMAC 金鑰管理員」。
在您的專案中有一個要為其建立 HMAC 金鑰的服務帳戶。如果您還沒有服務帳戶,請參閱建立服務帳戶。
請確保下列組織政策限制已停用:
constraints/storage.restrictAuthTypes
(必須停用,才能進行 HMAC 金鑰驗證)
如要瞭解如何檢查及停用限制,請參閱「建立及管理機構政策」一文。
建立 HMAC 金鑰
如何為服務帳戶建立 HMAC 金鑰:
控制台
控制台不支援使用 HMAC 金鑰。 Trusted Cloud
指令列
使用 hmac create
指令:
gcloud storage hmac create SERVICE_ACCOUNT_EMAIL
其中,SERVICE_ACCOUNT_EMAIL
是與您的服務帳戶相關聯的電子郵件地址。例如:service-7550275089395@my-pet-project.s3ns-system.iam.gserviceaccount.com
。
如果成功,回應會包含 HMAC 金鑰資源,包括 accessId
和 secret
的值。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
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.s3nsapis.fr/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys?serviceAccountEmail=SERVICE_ACCOUNT_EMAIL"
其中:
PROJECT_IDENTIFIER
是與您要建立的金鑰相關聯的專案 ID 或編號。例如:my-pet-project
。- 其中,
SERVICE_ACCOUNT_EMAIL
是與您的服務帳戶相關聯的電子郵件地址。例如:service-7550275089395@my-pet-project.s3ns-system.iam.gserviceaccount.com
。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過POST
HMAC 金鑰要求呼叫 XML API:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/?Action=CreateAccessKey&UserName=SERVICE_ACCOUNT_EMAIL"
其中,
SERVICE_ACCOUNT_EMAIL
是與您的服務帳戶相關聯的電子郵件地址。例如:service-7550275089395@my-pet-project.s3ns-system.iam.gserviceaccount.com
。
取得 HMAC 金鑰資訊
如要列出專案的 HMAC 金鑰,並取得金鑰相關資訊:
控制台
控制台不支援使用 HMAC 金鑰。 Trusted Cloud
指令列
使用
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,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會擷取與專案相關聯的 HMAC 金鑰清單:
下列範例會擷取關特定 HMAC 金鑰的相關資訊:
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會擷取與專案相關聯的 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.s3nsapis.fr/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.s3nsapis.fr/?Action=ListAccessKeys&UserName=SERVICE_ACCOUNT_EMAIL"
其中,
SERVICE_ACCOUNT_EMAIL
是與您的服務帳戶相關聯的電子郵件地址。例如:service-7550275089395@my-pet-project.s3ns-system.iam.gserviceaccount.com
。
更新 HMAC 金鑰的狀態
如何將 HMAC 金鑰切換為有效和停用狀態:
控制台
控制台不支援使用 HMAC 金鑰。 Trusted Cloud
指令列
使用 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,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會停用 HMAC 金鑰:
以下範例會啟用 HMAC 金鑰:
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
以下範例會停用 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.s3nsapis.fr/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.s3nsapis.fr/?Action=UpdateAccessKey&AccessKeyId=ACCESS_KEY_ID&Status=STATUS"
其中:
ACCESS_KEY_ID
是與您要更新的金鑰相關聯的存取權 ID。STATUS
是金鑰的所需狀態。例如:Inactive
。
變更 HMAC 金鑰的狀態後,最多需要 3 分鐘,狀態變更才會全面套用到 Cloud Storage 系統。因此,您應先停用 HMAC 金鑰,至少等待 3 分鐘再刪除金鑰。
刪除 HMAC 金鑰
HMAC 金鑰必須處於停用狀態才能刪除。如何刪除停用的 HMAC 金鑰:
控制台
控制台不支援使用 HMAC 金鑰。 Trusted Cloud
指令列
使用 hmac delete
指令:
gcloud storage hmac delete ACCESS_KEY_ID
其中 ACCESS_KEY_ID
是與您要刪除的金鑰相關聯的存取權 ID。
如果執行成功,指令不會傳回回應。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
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.s3nsapis.fr/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.s3nsapis.fr/?Action=DeleteAccessKey&AccessKeyId=ACCESS_KEY_ID"
其中
ACCESS_KEY_ID
是與要刪除的金鑰相關聯的存取權 ID。