Google宣佈推出新的Cloud Identity和Access Management(IAM)特性,幫助客戶更好地管理Google Compute Engine中的安全和訪問控制。這些特性包括資源級別的IAM,在各個資源(例如VM實例和磁盤)上設置策略,以及基於預定義條件(例如資源名稱前綴和原始請求屬性,如IP或設備)授予訪問權限的IAM條件。
在舊金山舉行的Next Next 2018大會上,Google推出了Compute Engine資源級IAM,允許用戶在虛擬機、磁盤、鏡像和其他Compute Engine資源上應用IAM策略,從而提供更多靈活性和細粒度的環境控制。除了資源級IAM之外,用戶還可以使用條件在資源級策略上表達和實現上下文感知訪問。這些IAM條件提供了三個條件屬性:名稱前綴屬性、訪問級別屬性和日期/時間屬性。通過設置屬性,用戶可以增加管理訪問控制的靈活性。
有了Compute Engine資源級IAM,用戶可以在組織、文件夾或項目級別應用策略。此外,這些策略由以下級別繼承,爲用戶提供有效且高效的授予權限的能力。
用戶可以通過命令行語句設置Compute Engine資源級IAM策略,例如:
gcloud beta images set-iam-policy betaTestImage1 betaImagePolicy.json
betaImagePolicy.json文件包含了特定角色的特定組的策略定義。
{ "policy": "bindings": [ { "members": [ "group:[email protected]", ], "role": "roles/compute.imageUser" }, ], }
有了這些策略定義,用戶可以控制哪些用戶可以訪問哪些Compute Engine 資源。用戶可以在Compute Engine資源級IAM策略中設置名稱前綴、訪問級別和日期/時間屬性。用戶可以在IAM策略中指定名稱前綴屬性,並且只在資源名稱與資源名稱前綴匹配時才應用這個策略。此外,通過使用名稱前綴匹配,用戶可以減少授予的訪問範圍。用戶通過條件在策略定義文件中指定名稱前綴屬性。
{ "policy": { "bindings": [ { "role": "roles/compute.instanceAdmin.v1", "members": [ "user:[email protected]", ] "condition": { "title": "dev1 prefix", "description": "Role granted only for instances and disks with Name Prefix dev1", "expression": "(resource.type=="compute.instances"&& resource.name.startsWith("projects/[PROJECT_NAME]/zones/[ZONE_NAME]/instances/dev1"))||(resource.type=="compute.disks"&&resource.name.startsWith("projects/[PROJECT_NAME]/zones/[ZONE_NAME]/disks/dev1"))" } } } }
有了訪問級別的屬性,用戶可以確保請求滿足基於請求原始屬性(例如IP地址或設備狀態)授權的特定訪問級別。根據博客的公告:
最後,日期/時間屬性允許用戶添加開始和結束日期以及IAM策略時間。例如,爲了遵循最低權限企業原則,允許輪班待命團隊成員作爲實例管理員執行操作,但權限被限制在待命期間,防止意外操作。
Compute Engine資源級IAM特性測試版可通過API、CLI和Developer Console獲得。此外,IAM條件特性提供了私有測試版。