本文說明如何使用 IAM 拒絕政策和機構政策限制,控管機構或資料夾內 Autokey 的使用方式。這兩項防護措施只能透過機構層級的角色修改,因此擁有資料夾或專案層級「擁有者」或「管理員」角色的主體無法覆寫。
支援的用途如下:
- 要求金鑰由 Autokey 建立。您可以禁止主體手動建立金鑰,確保所有金鑰都是由 Autokey 建立。如果資源未啟用 Autokey,您就完全無法建立金鑰。
- 限制 Autokey,只允許專屬專案金鑰儲存功能或同專案金鑰儲存功能。
- 完全封鎖 Autokey。這可確保所有金鑰都是手動建立。
IAM 與組織政策
您可以使用 IAM 和組織政策設定防護措施,控管機構中 Cloud KMS Autokey 的使用方式。
IAM 可控管哪些人有權對哪些資源執行哪些動作。您可以使用 IAM 限制哪些主體可以在貴機構中啟用及使用 Autokey。
組織政策可控管可建立的資源,以及資源的設定方式。您可以使用自訂機構政策,限制 Autokey 的啟用位置和啟用方式。
您可以同時使用 IAM 和機構政策,建立強大的防護措施系統,控管哪些使用者可以啟用及使用 Autokey,以及他們可以在何處執行這項操作。
事前準備
如要取得控管 Autokey 用量所需的權限,請要求管理員授予您組織的下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
使用 IAM 拒絕政策控管 Autokey
IAM 拒絕政策可從上而下控管哪些主體可以執行哪些動作。在資源上設定的拒絕政策無法由 IAM 角色授權或在子項資源上設定的拒絕政策覆寫。即使主體所擁有的角色包含遭拒的權限,也無法完成需要這些權限的操作。
如要瞭解如何建立 IAM 拒絕政策,請參閱「拒絕資源存取權」。
下表列出 IAM 拒絕政策的一些範例用途,包括可拒絕的權限,以控管貴機構中的 Autokey,以及拒絕各項權限的效果。
使用自訂組織政策限制控管 Autokey
自訂機構政策限制可提供由下而上的控制權,決定 Autokey 的設定位置和方式。子項資源強制執行的限制可能會覆寫限制。不過,變更限制條件需要機構層級的權限,因此具有資料夾或專案層級權限的主體無法覆寫限制條件。系統會強制執行限制,因此即使主體具備執行禁止動作所需的權限,也無法完成這些動作。
如要瞭解如何在機構中強制執行自訂限制,請參閱「為 Cloud KMS 建立自訂機構政策限制」。
您可以將本文所述的自訂組織政策限制,與其他 CMEK 組織政策合併使用。
限制自動按鍵模式
您可以有條件地封鎖 AutokeyConfig 資源的建立作業,藉此限制 Autokey 功能。下列範例限制定義會禁止根據 keyProjectResolutionMode 建立或更新 AutokeyConfig 資源。
name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictAutokeyKeyStorage
resourceTypes:
- cloudkms.googleapis.com/AutokeyConfig
methodTypes:
- CREATE
- UPDATE
condition: "resource.keyProjectResolutionMode == 'KEY_PROJECT_RESOLUTION_MODE')"
actionType: DENY
displayName: Restrict Autokey key storage mode
description: >
Prevent creation or update of AutokeyConfig resources with
`KEY_PROJECT_RESOLUTION_MODE` key resolution mode.
將 KEY_PROJECT_RESOLUTION_MODE 替換為要封鎖的 keyProjectResolutionMode,例如,如要禁止機構中的任何人在專案中使用同專案金鑰儲存功能,請將這個值設為 RESOURCE_PROJECT。
禁止在資料夾上建立 Autokey 設定
您可以透過自訂機構政策,封鎖所有 AutokeyConfig 資源的建立作業,禁止在資料夾中啟用 Autokey。
下列範例限制定義禁止在具名資料夾中建立 AutokeyConfig 資源。這項限制生效後,您仍可修改現有設定。
name: organizations/ORGANIZATION_ID/customConstraints/custom.noNewAutokeyConfigFolder
resourceTypes:
- cloudkms.googleapis.com/AutokeyConfig
methodTypes:
- CREATE
condition: "resource.name == 'folders/FOLDER_ID/autokeyConfig'"
actionType: DENY
displayName: Prohibit Autokey within FOLDER_ID
description: >
Prevent creation of new AutokeyConfig resources within
folders/FOLDER_ID.
更改下列內容:
ORGANIZATION_ID:貴機構的 ID。FOLDER_ID,並填入要封鎖 Autokey 的資料夾 ID。
禁止在機構內建立 Autokey 設定
您可以透過自訂機構政策,禁止建立所有 AutokeyConfig 資源,在整個機構內停用 Autokey。
下列範例限制定義會禁止在整個機構內建立 AutokeyConfig 資源。這項限制生效後,您仍可修改現有設定。
name: organizations/ORGANIZATION_ID/customConstraints/custom.noNewAutokeyConfigOrg
resourceTypes:
- cloudkms.googleapis.com/AutokeyConfig
methodTypes:
- CREATE
condition: "resource.name.endsWith('/autokeyConfig')"
actionType: DENY
displayName: Prohibit Autokey within ORGANIZATION_ID
description: >
Prevent creation of new AutokeyConfig resources within organization
ORGANIZATION_ID.
將 ORGANIZATION_ID 替換為貴機構的 ID。
禁止變更資料夾的 Autokey 設定
您可以透過自訂機構政策,封鎖所有 AutokeyConfig 資源的建立或更新作業,防止資料夾內的 Autokey 設定遭到變更。
下列範例限制定義禁止在具名資料夾中建立或更新 AutokeyConfig 資源。
name: organizations/ORGANIZATION_ID/customConstraints/custom.noChangeAutokeyConfigFolder
resourceTypes:
- cloudkms.googleapis.com/AutokeyConfig
methodTypes:
- CREATE
- UPDATE
condition: "resource.name == 'folders/FOLDER_ID/autokeyConfig'"
actionType: DENY
displayName: Prohibit Autokey within FOLDER_ID
description: >
Prevent creation or update of AutokeyConfig resources within
folders/FOLDER_ID.
更改下列內容:
ORGANIZATION_ID:貴機構的 ID。FOLDER_ID,並填入要封鎖 Autokey 的資料夾 ID。
禁止在機構內變更 Autokey 設定
您可以透過自訂機構政策,封鎖所有 AutokeyConfig 資源的建立或更新作業,禁止機構內任何位置變更 Autokey 設定。
下列範例限制定義會禁止在整個機構中建立或更新 AutokeyConfig 資源。
name: organizations/ORGANIZATION_ID/customConstraints/custom.noChangeAutokeyConfigOrg
resourceTypes:
- cloudkms.googleapis.com/AutokeyConfig
methodTypes:
- CREATE
- UPDATE
condition: condition: "resource.name.endsWith('/autokeyConfig')"
actionType: DENY
displayName: Prohibit Autokey within ORGANIZATION_ID
description: >
Prevent creation or update of AutokeyConfig resources within
ORGANIZATION_ID.
將 ORGANIZATION_ID 替換為貴機構的 ID。
僅允許 DISABLED Autokey 設定
下列範例限制定義禁止任何人在整個機構中建立或更新 AutokeyConfig 資源,除非明確將 keyProjectResolutionMode 設為 DISABLED。
name: organizations/ORGANIZATION_ID/customConstraints/custom.onlyDisabledAutokeyConfig
resourceTypes:
- cloudkms.googleapis.com/AutokeyConfig
methodTypes:
- CREATE
- UPDATE
condition: "resource.keyProjectResolutionMode=='DISABLED'"
actionType: ALLOW
displayName: Prohibit Autokey within the organization
description: >
Prevent creation or update of `AutokeyConfig` resources within
organization ORGANIZATION_ID unless the `keyProjectResolutionMode`
is `DISABLED`.
禁止專案層級的 Autokey 設定
以下範例限制定義禁止任何人在專案中建立或更新 AutokeyConfig 資源,但不會封鎖資料夾層級的設定。強制執行這項限制後,先前專案層級的 AutokeyConfig 資源仍會生效,但所有其他專案都必須繼續從上層資料夾繼承 AutokeyConfig。
name: organizations/ORGANIZATION_ID/customConstraints/custom.noAutokeyConfigProject
resourceTypes:
- cloudkms.googleapis.com/AutokeyConfig
methodTypes:
- CREATE
- UPDATE
condition: "resource.name.startsWith('projects/')"
actionType: DENY
displayName: Block project-level Autokey within the organization
description: >
Prevent creation or update of `AutokeyConfig` resources on projects within
organization ORGANIZATION_ID. Existing project-level AutokeyConfig
resources remain in effect, but all other projects must inherit the
AutokeyConfig from their parent folder.
應用實例
以下各節提供範例,說明如何一併使用 IAM 拒絕政策、自訂組織政策和標準組織政策。
要求 Autokey 建立金鑰
如要在資料夾中要求使用 CMEK 與 Autokey,可以結合 IAM 存取控管機制和 CMEK 組織政策。做法是從 Cloud KMS 服務代理程式以外的主體移除金鑰建立權限,然後要求所有資源都使用 Autokey 金鑰專案的 CMEK 保護。
如要在資料夾中強制使用 Autokey,請完成下列步驟:
強制執行 IAM 拒絕政策,禁止在金鑰專案中手動建立金鑰。在拒絕政策中,拒絕所有主體 (Cloud KMS 服務代理人除外) 的
cloudkms.cryptoKeys.create權限。如果資料夾使用專屬專案金鑰儲存功能,請將拒絕政策套用至專屬金鑰專案。如果資料夾使用同專案金鑰儲存功能,請對資源專案套用拒絕政策。如果無法手動建立金鑰,則只能在這些專案中建立 Autokey 建立的金鑰。
強制執行
constraints/gcp.restrictNonCmekServices限制,確保資料夾中新建的資源必須使用 CMEK 保護。如要進一步瞭解這項限制,包括支援這項限制的服務清單,請參閱「要求使用 CMEK 保護」。
強制執行
constraints/gcp.restrictCmekCryptoKeyProjects限制,規定用於 CMEK 的金鑰必須來自專屬金鑰專案,或是啟用同專案金鑰儲存功能的專案。如要進一步瞭解這項限制,包括支援這項限制的服務清單,請參閱「限制使用 Cloud KMS 金鑰進行 CMEK」。
完全禁止 Autokey
如要完全禁止在機構或資料夾中使用 Autokey,可以使用 IAM 拒絕政策或自訂機構政策限制。如要進行多層保證,可以同時使用這兩者。
如要在機構或資料夾中完全封鎖 Autokey,請完成下列步驟:
如果機構或資料夾已啟用 Autokey,請先停用 Autokey。
強制執行 IAM 拒絕政策,禁止使用者設定 Autokey。在拒絕政策中,拒絕所有主體的
cloudkms.autokeyConfigs.update權限。如果所有位置都停用 Autokey,且主體無法修改AutokeyConfig資源,Autokey 就會維持完全停用狀態。選用:完成上述步驟後,即可防止任何人啟用 Autokey。不過,如要進一步確保安全,您也可以強制執行自訂機構政策限制,只允許使用已停用 Autokey 的
AutokeyConfig資源。
如果您同時強制執行 IAM 拒絕政策和本文所述的自訂機構政策限制,主體就無法在資源中啟用 Autokey,必須先取消或更新這兩項防護措施。