SCP 評估 - AWS Organizations

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SCP 評估

注意

本節中的資訊適用於管理政策類型,包括 AI 服務選擇退出政策、備份政策或標記政策。如需詳細資訊,請參閱 理解管理政策繼承

由於可以在 AWS Organizations中連接不同層級的多個服務控制政策 (SCP),因此理解 SCP 的評估方式可協助您撰寫產生正確結果的 SCP。

SCP 如何使用允許陳述式

對於為特定帳戶允許的許可,每個層級都必須有明確的 Allow 陳述式,範圍從根目錄到帳戶直接路徑中的每個 OU (包括目標帳戶本身)。這就是為什麼當您啟用 SCP 時, AWS Organizations 附加名為 Full 的 AWS 受管理 SCP 策略,AWSAccess該策略允許所有服務和動作。如果移除此政策且未在組織的任何層級取代,則該層級下的所有 OU 和帳戶都會遭到封鎖,無法執行任何動作。

例如,讓我們逐步瀏覽圖 1 和圖 2 中顯示的場景。對於在帳戶 B 中允許的許可或服務,應將允許此許可或服務的 SCP 連接至根、生產 OU 和帳戶 B 本身。

SCP 評估遵循 deny-by-default 模型,這意味著 SCP 中未明確允許的任何權限都將被拒絕。如果在 SCP 中的任何層級 (例如根目錄、生產 OU 或帳戶 B) 均沒有允許陳述式,則會拒絕存取。

備註
  • SCP 中的 Allow 陳述式允許 Resource 元素只有一個 "*" 項目。

  • SCP 中的 Allow 陳述式完全不能有 Condition 元素。

圖 1:在根、生產 OU 和帳戶 B 中連接 Allow 陳述式的範例組織結構

圖 2:生產 OU 中缺少 Allow 陳述式的範例組織結構及其對帳戶 B 的影響

SCP 如何使用拒絕陳述式

對於為特定帳戶拒絕的許可,從根目錄到帳戶直接路徑中的每個 OU (包括目標帳戶本身) 的任何 SCP 都可以拒絕該許可。

例如,假設有一個 SCP 連接至生產 OU,該 SCP 具有針對特定服務指定的明確 Deny 陳述式。剛好有另一個 SCP 連接至根和帳戶 B,其明確允許存取該相同的服務,如圖 3 所示。因此,帳戶 A 和帳戶 B 都會遭到拒絕存取該服務,因為系統會針對所有 OU 和成員帳戶評估連接至組織中任何層級的拒絕政策。

圖 3:在生產 OU 中連接 Deny 陳述式的範例組織結構及其對帳戶 B 的影響

使用 SCP 的策略

撰寫 SCP 時,您可以使用 AllowDeny 陳述式的組合,以允許組織中預期的動作和服務。 Deny 陳述式是實作限制的強大方法,這些限制對於組織或 OU 的較廣泛部分來說應該有效,因為在根層級或 OU 層級套用時,它們會影響其下的所有帳戶。

例如,您可以在根層級使用Deny陳述式 防止成員帳戶離開組織。來實作策略,這對組織中的所有帳號都有效。拒絕陳述式也支援可協助建立例外狀況的條件元素。

提示

您可以使用 IAM上次存取的服務資料來更新 SCP,以限制只存取您需要的 AWS 服務。如需詳細資訊,請參閱 IAM 使用者指南中的檢視 Organizations 的 Organizations 服務上次存取資料

AWS Organizations 在建立時,將名為 Full 的 AWS 受管理 SCP 附加AWSAccess到每個根、OU 和帳戶。此政策會允許所有服務和動作。您可以將 Full AWSAccess 取代為僅允許一組服務的原則,如此一來,除非更新 SCP 明確允許新 AWS 服務,否則不允許新服務。例如,如果您的組織只想要允許在環境中使用服務子集,可以使用 Allow 陳述式來僅允許特定的服務。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "cloudwatch:*", "organizations:*" ], "Resource": "*" } ] }

結合這兩種陳述式的政策可能如以下範例所示,其中會阻止成員帳戶離開組織並允許使用所需的 AWS 服務。組織管理員可以卸離「完整」AWSAccess 策略,然後改為附加此策略。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "cloudwatch:*", "organizations:*" ], "Resource": "*" }, { "Effect": "Deny", "Action":"organizations:LeaveOrganization", "Resource": "*" } ] }

現在,請考慮下列範例組織結構,以理解如何在組織中的不同層級套用多個 SCP。

如下資料表顯示沙盒 OU 中的有效政策。

案例 中的 SCP 沙盒 OU 中的 SCP 帳戶 A 中的 SCP 帳戶 A 中的產生政策 帳戶 B帳戶 C 中的產生政策
1 完全 AWS 存取 完全 AWS 訪問 + 拒絕 S3 訪問 完整 AWS 存取權限 + 拒絕 EC2 存取 無 S3 存取,無 EC2 存取 無 S3 存取
2 完全 AWS 存取 允許 EC2 存取 允許 EC2 存取 完全 AWS 存取 完全 AWS 存取
3 拒絕 S3 存取 允許 S3 存取 完全 AWS 存取 無 S3 存取 無 S3 存取

如下資料表顯示工作負載 OU 中的有效政策。

案例 中的 SCP 工作負載 OU 中的 SCP 測試 OU 中的 SCP 帳戶 D 中的產生政策 生產 OU、帳戶 E帳戶 F 中的產生政策
1 完全 AWS 存取 完全 AWS 存取 完整 AWS 存取權限 + 拒絕 EC2 存取 無 EC2 存取 完全 AWS 存取
2 完全 AWS 存取 完全 AWS 存取 允許 EC2 存取 完全 AWS 存取 完全 AWS 存取
3 拒絕 S3 存取 完全 AWS 存取 允許 S3 存取 無 S3 存取 無 S3 存取