教學:建立和設定組織 - AWS Organizations

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

教學:建立和設定組織

在本教學課程中,您會建立組織並使用兩個 AWS 成員帳戶進行設定。您會在您的組織中建立其中一個成員帳戶,及邀請其他帳戶加入您的組織。接著,您會使用允許清單技術,以指定帳戶管理員僅可以委派明確列出的服務和動作。這可讓系統管理員在允許公司中的任何其他人使用之前,先驗證所 AWS 引入的任何新服務。如此一來,如果 AWS 引入新服務,系統管理員將服務新增至適當原則中的允許清單之前,它仍會保持禁止狀態。本教學課程也會示範如何使用拒絕清單,以確保成員帳戶中的任何使用者都無法變更 AWS CloudTrail 建立之稽核記錄的組態。

下圖顯示教學的主要步驟。

Four-step process for creating an organization, units, policies, and testing restrictions.

步驟 1:建立您的組織

在此步驟中,您會以目前的帳戶 AWS 帳戶 為管理帳戶來建立組織。您也邀請一個人 AWS 帳戶 加入您的組織,並建立第二個帳戶作為成員帳戶。

步驟 2:建立組織單位

接著,您可以在新組織中建立兩個組織單位 (OU),並將這些成員帳戶放入 OU 中。

步驟 3:建立服務控制政策

您可以使用服務控制政策 (SCP),將限制套用到可委派給成員帳戶中使用者及角色的動作。在此步驟中,您會建立兩個 SCP 並將他們連接到組織中的 OU。

步驟 4:測試您組織的政策

您可以以使用者身分從各測試帳戶登入,查看 SCP 對帳戶產生的影響。

本教學課程中的任何步驟都不會對您的 AWS 帳單產生成本。 AWS Organizations 是一項免費服務。

必要條件

本教學課程假設您有兩個現有的存取權 AWS 帳戶 (您將建立第三個作為本教學課程的一部分),並且您可以以管理員身分登入每個教學課程。

此教學會提到如下的帳戶:

  • 111111111111 – 您用來建立組織的帳戶。此帳戶會成為管理帳戶。此帳戶擁有者的電子郵件地址為 OrgAccount111@example.com

  • 222222222222 – 您邀請加入組織作為成員帳戶的帳戶。此帳戶擁有者的電子郵件地址為 member222@example.com

  • 333333333333 – 您建立為組織成員的帳戶。此帳戶擁有者的電子郵件地址為 member333@example.com

將上面的值替換成與您測試帳戶關聯的值。我們建議您不要在本教學中使用生產帳戶。

步驟 1:建立您的組織

在此步驟中,您會以管理員身分登入帳戶 111111111111、以管理帳戶身分使用該帳戶來建立組織,然後邀請現有帳戶 222222222222 加入為成員帳戶。

AWS Management Console
  1. 以 AWS 帳戶 111111111111 的系統管理員身分登入,然後開啟主控台。AWS Organizations

  2. 在簡介頁面上,選擇 Create organization (建立組織)。

  3. 在確認對話方塊中,選擇 Create an organization (建立組織)。

    注意

    在預設情況下,您建立的組織會啟用所有功能。您也可以建立組織,但選擇僅啟用合併帳單功能

    AWS 會建立組織並顯示AWS 帳戶頁面。如果您在不同的頁面上,則選擇左側導覽窗格中的 AWS 帳戶

    如果您使用的帳戶從未經由 AWS驗證其電子郵件,則會自動傳送一封驗證電子郵件到與您的管理帳戶關聯的地址。在您收到驗證電子郵件之前,可能會有一些延遲的時間。

  4. 請在 24 小時內驗證您的電子郵件地址。如需詳細資訊,請參閱 電子郵件地址驗證 AWS Organizations

您的組織現已建立,其唯一成員即為您個人的帳戶。此為組織的管理帳戶。

邀請現有的帳戶加入您的組織

現在您已有了組織,就可以開始填入帳戶。在本節中的步驟,您會邀請現有帳戶加入為您組織的成員。

AWS Management Console
邀請現有的帳戶加入
  1. 導覽至 AWS 帳戶 頁面,然後選擇 Add AWS 帳戶 (新增 AWS 帳戶帳戶)。

  2. 在 [新增 AWS 帳戶頁面] 上,選擇 [邀請現有的] AWS 帳戶。

  3. Email address or account ID of an AWS 帳戶 to invite (待邀請的 AWS 帳戶 帳戶的電子郵件地址或帳戶 ID) 方塊中,輸入您要邀請的帳戶擁有者電子郵件地址,如下所示:member222@example.com。或者,如果您知道 AWS 帳戶 ID 號碼,則可以輸入它。

  4. Message to include in the invitation email message (要包含在邀請電子郵件訊息中的訊息) 方塊中,輸入您所需的任何文字。此文字包含在傳送到帳戶擁有者的電子郵件中。

  5. 選擇 [傳送邀請]。 AWS Organizations 將邀請傳送給帳戶擁有者。

    重要

    如果收到指示,請展開錯誤訊息。如果錯誤指出您已超出組織的帳戶限制,或是組織仍在初始化,因此無法新增帳戶,請在建立組織後等待一小時,然後再試一次。如果錯誤仍然存在,請聯絡 AWS Support

  6. 針對此教學的目的,您現在需要接受自己的邀請。執行以下其中一項,以進入主控台中的 Invitations (邀請) 頁面:

    • 開啟從管理帳戶 AWS 傳送的電子郵件,然後選擇要接受邀請的連結。提示您登入時,請以獲邀請成員帳戶中的管理員身分執行。

    • 開啟 AWS Organizations 主控台,導覽至 Invitations (邀請) 頁面。

  7. AWS 帳戶 頁面上,選擇 Accept (接受),然後選擇 Confirm (確認)。

    提示

    邀請可能會延遲接收,您可能需要等待一段時間才能接受邀請。

  8. 從您的帳戶成員登出,並再次在您的管理帳戶中以管理員身分登入。

建立成員帳戶

在本節中的步驟中,您將 AWS 帳戶 建立自動成為組織成員的。我們在本教學中提到的帳戶為 333333333333。

AWS Management Console
建立成員帳戶
  1. 在主 AWS Organizations 控台的AWS 帳戶頁面上,選擇 [新增] AWS 帳戶。

  2. Add an AWS 帳戶 (新增 AWS 帳戶帳戶) 頁面上,選擇 Create an AWS 帳戶 (建立 AWS 帳戶帳戶)。

  3. 針對 AWS 帳戶 name (AWS 帳戶 帳戶名稱),輸入帳戶的名稱,例如 MainApp Account

  4. 針對 Email address of the account's root user (帳戶根使用者的電子郵件地址),輸入要為帳戶接收通訊的個人電子郵件地址。此值必須在全域必須是唯一的。沒有任兩個帳戶可以有相同的電子郵件地址。例如,您可以使用類似 mainapp@example.com 的內容。

  5. 針對 IAM role name (IAM 角色名稱),您可以將它保留空白,以自動使用 OrganizationAccountAccessRole 的預設角色名稱,或者您可以提供自己的名稱。此角色可讓您在以管理帳戶中 IAM 使用者的身分登入時存取新成員帳戶。在本教學中,請將它保留空白,以指示 AWS Organizations 使用預設名稱建立角色。

  6. 選擇 Create AWS 帳戶 (建立 AWS 帳戶帳戶)。您可能需要稍待片刻並重新整理頁面,才會看見新帳戶顯示在 AWS 帳戶 頁面。

    重要

    如果您收到錯誤,指出您已超出組織的帳戶限制,或是因為您的組織仍在初始化,所以無法新增帳戶,請在建立組織後等待 1 小時,然後再試一次。如果錯誤仍然存在,請聯絡 AWS Support

步驟 2:建立組織單位

在本節的步驟中,您會建立組織單位 (OU),並將您的成員帳戶置放在其中。當您完成時,您的階層看起來會與下圖相似。管理帳戶會留在根中。一個成員帳戶會移至生產 OU,而另一個成員帳戶則移至 MainApp OU,這是生產的子系。

Organizational hierarchy with Root, Production, and MainApp OUs, and three accounts distributed among them.
AWS Management Console
若要建立並填入 OU
注意

在接下來的步驟中,您可以與物件互動,您可以選擇物件本身的名稱或物件旁的選項按鈕。

  • 如果您選擇物件的名稱,則會開啟顯示物件詳細資訊的新頁面。

  • 如果您選擇物件旁邊的選項按鈕,則會識別要由其他動作執行的物件,例如選擇選單選項。

接下來的步驟會讓您選擇選項按鈕,以便您可以隨後透過選擇選單選項來處理關聯的物件。

  1. AWS Organizations 主控台上,導覽至 AWS 帳戶 頁面。

  2. 選擇 Root (根) 容器旁邊的核取方塊 Blue checkmark icon indicating confirmation or completion of a task.

  3. 選擇 [動] 下拉式清單,然後在 [組織單位] 下選擇 [建立新的]。

  4. Create organizational unit in Root (在根中建立組織單位) 頁面,針對 Organizational unit name (組織單位名稱),輸入 Production,然後選擇 Create organizational unit (建立組織單位)。

  5. 選擇您的新 Production (生產) OU 旁邊的核取方塊 Blue checkmark icon indicating confirmation or completion of a task.

  6. 選擇 Actions (動作),然後在 Organizational unit (組織單位) 下,選擇 Create new (建立新的)。

  7. Create organizational unit in Production (在生產中建立組織單位) 頁面,針對第二個 OU 的名稱,輸入 MainApp,然後選擇 Create organizational unit (建立組織單位)。

    現在您可以將您的成員帳戶移到這些 OU。

  8. 返回 AWS 帳戶 頁面,然後選擇 Production (生產) OU 旁邊的三角形 Gray cloud icon with an arrow pointing downward, indicating download or cloud storage. ,以展開其下的樹狀目錄。這會將 O MainAppU 顯示為生產的子系。

  9. 333333333333 旁邊,選擇核取方塊 Blue checkmark icon indicating confirmation or completion of a task. (而不是其名稱),選擇 Actions (動作),然後在 AWS 帳戶 下,選擇 Move (移動)。

  10. 移動 AWS 帳戶 '3333333333' 頁面上,選擇生產環境旁邊的三角形以將其展開。在旁邊 MainApp,選擇選項按鈕 Blue circular icon with a white checkmark symbol in the center. (不是其名稱),然後選擇 [移動] AWS 帳戶。

  11. 222222222222 旁邊,選擇核取方塊 Blue checkmark icon indicating confirmation or completion of a task. (而不是其名稱),選擇 Actions (動作),然後在 AWS 帳戶 下,選擇 Move (移動)。

  12. 在 [移動 AWS 帳戶 '2222222222] 頁面上,選擇 [生產] 旁邊的圓鈕 (而非其名稱),然後選擇 [移動]。 AWS 帳戶

步驟 3:建立服務控制政策

在本節的步驟中,您會建立三個服務控制政策 (SCP),並將他們連接到根和 OU,以限制組織帳戶中的使用者可以執行的作業。第一個 SCP 可防止任何成員帳戶中的任何人建立或修改您設定的任何 AWS CloudTrail 記錄。管理帳戶不受任何 SCP 影響,因此套用 S CloudTrail CP 之後,您必須從管理帳戶建立任何記錄檔。

啟用組織的服務控制政策類型

在可以將任何類型的政策連接到根或根內的任何 OU 之前,您必須先啟用該組織的政策類型。預設不會啟用政策類型。本節中的步驟會說明如何為組織啟用服務控制政策 (SCP) 類型。

AWS Management Console
為組織啟用 SCP。
  1. 導覽至 Policies (政策) 頁面,然後選擇 Service control policies (服務控制政策)。

  2. Service control policies (服務控制政策) 頁面中,選擇 Enable service control policies (啟用服務控制政策)。

    綠色橫幅即會出現,通知您現在可以在組織中建立 SCP。

建立 SCP

現在,組織中已啟用服務控制政策,您可以建立本教學課程所需的三項政策。

AWS Management Console
建立第一個封鎖 CloudTrail 組態動作的 SCP
  1. 導覽至 Policies (政策) 頁面,然後選擇 Service control policies (服務控制政策)。

  2. Service control policies (服務控制政策) 頁面上,選擇 Create policy (建立政策)。

  3. 針對 Policy name (政策名稱),輸入 Block CloudTrail Configuration Actions

  4. 在 [原則] 區段的右側服務清單中,選 CloudTrail 取服務。然後選擇下列動作:AddTagsCreateTrailDeleteTrailRemoveTags、、StartLoggingStopLogging、和UpdateTrail

  5. 仍在右窗格中,選擇添加資源並指定CloudTrail所有資源。然後選擇 Add resource (新增資源)。

    左側的政策陳述式看起來與以下內容相似。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567890123", "Effect": "Deny", "Action": [ "cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:RemoveTags", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail" ], "Resource": [ "*" ] } ] }
  6. 選擇建立政策

第二個政策會定義您要為生產 OU 中使用者和角色啟用的所有服務及動作允許清單。完成之後,生產 OU 中的使用者便只會存取列出的服務和動作。

AWS Management Console
建立會為生產 OU 將核准的服務列入允許清單的第二個政策
  1. Service control policies (服務控制政策) 頁面中,選擇 Create policy (建立政策)

  2. 針對 Policy name (政策名稱),輸入 Allow List for All Approved Services

  3. 將您的游標置放在 Policy (政策) 區段的右側窗格中,然後貼上政策,如下所示。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1111111111111", "Effect": "Allow", "Action": [ "ec2:*", "elasticloadbalancing:*", "codecommit:*", "cloudtrail:*", "codedeploy:*" ], "Resource": [ "*" ] } ] }
  4. 選擇建立政策

最終原則會提供封鎖無法在 MainApp OU 中使用的服務的拒絕清單。在本教學課程中,您會封鎖 OU 中任何帳戶中對 Amazon DynamoDB 的存取MainApp

AWS Management Console
若要建立拒絕存取 OU 中無法使用之服務的第三個原則 MainApp
  1. Service control policies (服務控制政策) 頁面中,選擇 Create policy (建立政策)

  2. 針對 Policy name (政策名稱),輸入 Deny List for MainApp Prohibited Services

  3. 在左側的 Policy (政策) 區段中,選取 Amazon DynamoDB 作為服務。針對動作,選擇 All actions (所有動作)

  4. 在左側窗格中選擇 Add resource (新增資源),並指定 DynamoDBAll Resources (所有資源)。然後選擇 Add resource (新增資源)。

    右側的政策陳述式會進行更新,看起來與以下內容相似。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "dynamodb:*" ], "Resource": [ "*" ] } ] }
  5. 選擇 Create policy (建立政策) 來儲存 SCP。

將 SCP 連接到您的 OU

現在 SCP 已存在,並且已為您的根帳戶啟用,您可以將它們連接到根帳戶和 OU。

AWS Management Console
將政策連接到根和 OU
  1. 導覽至 AWS 帳戶 頁面。

  2. AWS 帳戶 頁面中,選擇 Root (根) (其名稱,而非單選按鈕),以導覽至其詳細資訊頁面。

  3. Root (根) 詳細資訊頁面中,選擇 Policies (政策) 索引標籤,然後在 Service Control Policies (服務控制政策) 中,選擇 Attach (連接)。

  4. Attach a service control policy (連接服務控制政策) 頁面上,選擇名稱為 Block CloudTrail Configuration Actions 的 SCP 旁邊的選項按鈕,然後選擇 Attach (連接)。在本教學課程中,您會將其附加至根目錄,以便影響所有成員帳戶,以防止任何人變更您的設定 CloudTrail方式。

    Root (根) 詳細資訊頁面,Policies (政策) 索引標籤現在會顯示連接至根的兩個 SCP:您剛剛連接的 SCP 和預設的 FullAWSAccess SCP。

  5. 導覽回 AWS 帳戶 頁面,然後選擇 Production (生產) OU (其名稱,而非單選按鈕),以導覽至其詳細資訊頁面。

  6. Production (生產) OU 的詳細資訊頁面中,選擇 Policies (政策) 索引標籤。

  7. Service Control Policies (服務控制政策) 中,選擇 Attach (連接)。

  8. Attach a service control policy (連接服務控制政策) 頁面上,選擇名 Allow List for All Approved Services 旁邊的選項按鈕,然後選擇 Attach (連接)。這可讓使用者或 Production (生產) OU 中成員帳戶的使用者或角色來存取核准的服務。

  9. 選擇 Policies (政策) 索引標籤,查看連接至 OU 的那兩個 SCP:您剛剛連接的 SCP 和預設的 FullAWSAccess SCP。不過,因為 FullAWSAccess SCP 也在允許所有服務和動作的允許清單中,所以您現在必須分離此 SCP,以確保僅允許您所核准的服務。

  10. 若要從生產 OU 移除預設原則,請選擇 [完整] 的選項按鈕AWSAccess,選擇 [卸離],然後在確認對話方塊中選擇 [卸離] 原則

    移除此預設政策後,您在前面步驟中所連接允許清單 SCP 中的所有動作和服務,將立即無法提供 Production (生產) OU 下所有成員帳戶存取。任何對於使用不在 Allow List for All Approved Services (所有核准服務的允許清單) SCP 中之動作的請求都會遭到拒絕。即使帳戶中的管理員將 IAM 許可政策連接到其中一個成員帳戶的使用者,也是如此。

  11. 現在您可以附加名為的 SCP,Deny List for MainApp Prohibited services以防止 MainApp OU 中帳戶中的任何人使用任何受限制的服務。

    若要這麼做,請瀏覽至AWS 帳戶頁面,選擇三角形圖示以展開生產 OU 的分支,然後選擇 MainAppOU (它的名稱,而不是選項按鈕) 以瀏覽至其內容。

  12. MainApp詳細資訊頁面上,選擇策略標籤。

  13. 在 [服務控制原則] 底下,選擇 [附加],然後在可用原則清單中選擇 [ MainApp 禁止的服務的拒絕清單] 旁的圓鈕,然後選擇 [附加原則]。

步驟 4:測試您組織的政策

您現在可以以任何成員帳戶中的使用者身分登入,並嘗試執行各種 AWS 動作:

  • 若您以管理帳戶中的使用者身分登入,您可以執行您 IAM 許可政策允許的任何操作。SCP 不會影響管理帳戶中的任何使用者或角色,無論帳戶位在哪一個根或 OU。

  • 如果您以帳戶 2222222222 的使用者身分登入,則可以執行允許清單允許的任何動作。 AWS Organizations 拒絕任何嘗試在不在允許清單中的任何服務中執行動作。此外, AWS Organizations 拒絕任何嘗試執行其中一個 CloudTrail 組態動作的嘗試。

  • 如果您以帳戶 333333333333 中的使用者身分登入,您可以執行允許清單所允許,且未被拒絕清單所封鎖的任何動作。 AWS Organizations 會拒絕所有嘗試執行不在允許清單的任何動作、以及在拒絕清單政策任何動作。此外, AWS Organizations 拒絕任何嘗試執行其中一個 CloudTrail 組態動作的嘗試。