本頁說明如何管理密鑰的存取權,包括密鑰內容。如要進一步瞭解存取控管和權限,請參閱「使用 IAM 控管存取權」。
必要的角色
如要取得管理密鑰存取權所需的權限,請要求管理員為您授予密鑰、專案、資料夾或機構的Secret Manager 管理員 (roles/secretmanager.admin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
授予存取權
如要授予密鑰存取權,請使用下列其中一種方法:
控制台
-
前往 Google Cloud 控制台的「Secret Manager」頁面。
-
如要選取密鑰,請在「Secret Manager」頁面中,按一下密鑰名稱旁的核取方塊。
-
如果面板尚未開啟,請按一下「Show Info Panel」(顯示資訊面板) 開啟面板。
-
在資訊面板中,按一下「新增主體」。
-
在「New principals」(新增主體) 欄位中,輸入要新增成員的電子郵件地址。
-
在「Select a role」(請選擇角色) 清單中,選擇「Secret Manager」,然後選取「Secret Manager Secret Accessor」(Secret Manager 密碼存取者)。
gcloud
使用下方的任何指令資料之前,請先替換以下項目:
- SECRET_ID:密鑰的 ID 或密鑰的完整 ID
- MEMBER:IAM 成員,例如使用者、群組或服務帳戶
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud secrets add-iam-policy-binding SECRET_ID \ --member="MEMBER" \ --role="roles/secretmanager.secretAccessor"
Windows (PowerShell)
gcloud secrets add-iam-policy-binding SECRET_ID ` --member="MEMBER" ` --role="roles/secretmanager.secretAccessor"
Windows (cmd.exe)
gcloud secrets add-iam-policy-binding SECRET_ID ^ --member="MEMBER" ^ --role="roles/secretmanager.secretAccessor"
REST
注意:與其他範例不同,這個範例會取代整個 IAM 政策。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:包含密碼的 Google Cloud 專案
- SECRET_ID:密鑰的 ID 或密鑰的完整 ID
- MEMBER:IAM 成員,例如使用者、群組或服務帳戶
HTTP 方法和網址:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:setIamPolicy
JSON 要求主體:
{"policy": {"bindings": [{"members": ["MEMBER"], "role": "roles/secretmanager.secretAccessor"}]}}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:setIamPolicy"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:setIamPolicy" | Select-Object -Expand Content
您應該會收到如下的 JSON 回應:
{ "version": 1, "etag": "BwYhOrAmWFQ=", "bindings": [ { "role": "roles/secretmanager.secretAccessor", "members": [ "user:[email protected]" ] } ] }
C#
如要執行這段程式碼,請先設定 C# 開發環境,然後安裝 Secret Manager C# SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Go
如要執行這段程式碼,請先設定 Go 開發環境,並安裝 Secret Manager Go SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Java
如要執行這段程式碼,請先設定 Java 開發環境,並安裝 Secret Manager Java SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境,並安裝 Secret Manager Node.js SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
PHP
如要執行這段程式碼,請先瞭解如何在 Google Cloud 上使用 PHP,並安裝 Secret Manager PHP SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Secret Manager Python SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Ruby
如要執行這段程式碼,請先設定 Ruby 開發環境,然後安裝 Secret Manager Ruby SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Secret Manager Python SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
撤銷存取權
如要撤銷密鑰的存取權,請使用下列其中一種方法:
控制台
-
前往 Google Cloud 控制台的「Secret Manager」頁面。
-
如要選取密鑰,請在「Secret Manager」頁面中,按一下密鑰名稱旁的核取方塊。
-
如果面板尚未開啟,請按一下「Show Info Panel」(顯示資訊面板) 開啟面板。
-
在資訊面板中,按一下使用者角色旁的展開箭頭,即可查看有權存取該角色的使用者或服務帳戶清單。
-
如要移除使用者或服務帳戶,請按一下服務帳戶或使用者 ID 旁的「刪除」
。 -
在隨即顯示的確認對話方塊中,按一下「移除」。
gcloud
使用下方的任何指令資料之前,請先替換以下項目:
- SECRET_ID:密鑰的 ID 或密鑰的完整 ID
- MEMBER:IAM 成員,例如使用者、群組或服務帳戶
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud secrets remove-iam-policy-binding SECRET_ID \ --member="MEMBER" \ --role="roles/secretmanager.secretAccessor"
Windows (PowerShell)
gcloud secrets remove-iam-policy-binding SECRET_ID ` --member="MEMBER" ` --role="roles/secretmanager.secretAccessor"
Windows (cmd.exe)
gcloud secrets remove-iam-policy-binding SECRET_ID ^ --member="MEMBER" ^ --role="roles/secretmanager.secretAccessor"
REST
注意:與其他範例不同,這個範例會取代整個 IAM 政策。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:專案 ID Google Cloud
- SECRET_ID:密鑰的 ID 或密鑰的完整 ID
HTTP 方法和網址:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:setIamPolicy
JSON 要求主體:
{"policy": {"bindings": []}}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:setIamPolicy"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:setIamPolicy" | Select-Object -Expand Content
您應該會收到如下的 JSON 回應:
{ "version": 1, "etag": "BwYhOtzsOBk=" }
C#
如要執行這段程式碼,請先設定 C# 開發環境,然後安裝 Secret Manager C# SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Go
如要執行這段程式碼,請先設定 Go 開發環境,並安裝 Secret Manager Go SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Java
如要執行這段程式碼,請先設定 Java 開發環境,並安裝 Secret Manager Java SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境,並安裝 Secret Manager Node.js SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
PHP
如要執行這段程式碼,請先瞭解如何在 Google Cloud 上使用 PHP,並安裝 Secret Manager PHP SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Secret Manager Python SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Ruby
如要執行這段程式碼,請先設定 Ruby 開發環境,然後安裝 Secret Manager Ruby SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。