本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
故障診斷
如果您在使用 AWS Control Tower 時遇到問題,您可以使用下列資訊,根據我們的最佳實務解決這些問題。如果您遇到的問題超出下列資訊的範圍,或在您嘗試解決這些問題後仍持續存在,請聯絡 AWS Support
登陸區域啟動失敗
登陸區域啟動失敗的常見原因:
-
沒有回應確認電子郵件訊息。
-
AWS CloudFormation StackSet 失敗。
確認電子郵件訊息:如果您的管理帳戶少於一小時,您可能會在建立其他帳戶時遇到問題。
採取動作
如果您遭遇此問題,請查看您的電子郵件。您可能已經收到正在等候回應的確認電子郵件。或者,若您發生此問題,我們建議您等待一個小時,然後再試一次。如果問題仍然存在,請聯絡 AWS Support
失敗 StackSets:登陸區域啟動失敗的另一個可能原因是 AWS CloudFormation StackSet 失敗。必須針對 AWS Control Tower 管理的所有 AWS 區域,在管理帳戶中啟用 AWS 安全字符服務 (STS) 區域,才能成功佈建;否則堆疊集將無法啟動。
採取動作
請務必在啟動 AWS Control Tower 之前啟用所有必要 AWS 的安全字符服務 (STS) 端點區域
若要檢視 AWS 區域 AWS Control Tower 支援的清單,請參閱 AWS 區域如何使用 AWS Control Tower。
登陸區域不是最新的錯誤
如果您最近尚未更新登陸區域,當您嘗試重新取得 AWS Control Tower 的存取權時,可能會收到錯誤。您可能會看到類似以下的錯誤訊息:
Unable to access Control Tower
您的帳戶已閒置太久。由於沒有活動,您必須更新登陸區域才能存取 AWS Control Tower。
不過,您的登陸區域更新可能會失敗。
要採取的步驟
登入組織的管理帳戶,並以根使用者身分登入。您的IAM使用者或 IAM Identity Center 中的使用者必須具有 AWS Control Tower 管理員許可,且屬於 AWSControlTowerAdmins群組。然後再次嘗試更新。
新帳戶佈建失敗
如果您遇到這個問題,請檢查這些常見的原因。
填寫帳戶佈建表單時,您可能會有:
-
指定的 tagOptions、
-
已啟用SNS的通知、
-
啟用的佈建產品通知。
再試一次佈建您的帳戶,而不指定這些選項中的任何選項。如需詳細資訊,請參閱使用 Account Factory 佈建 AWS Service Catalog 帳戶 。
失敗的其他常見原因:
-
如果您已建立佈建產品計劃 (以檢視資源變更),您的帳戶佈建可能會無限期地保持為 In progress (進行中) 狀態。
-
當其他 AWS Control Tower 組態變更正在進行時,在 Account Factory 中建立新帳戶將會失敗。例如,當程序正在執行將控制項新增至 OU 時,如果您嘗試佈建帳戶,帳戶工廠會顯示錯誤訊息。
在 AWS Control Tower 中檢查先前動作的狀態
-
導覽至 AWS CloudFormation > StackSets
-
檢查與 AWS Control Tower 相關的每個堆疊集 (字首:"AWSControlTower")
-
尋找仍在執行 AWS CloudFormation StackSets 的操作。
如果您的帳戶佈建時間超過一小時,建議您終止佈建程序,然後再試一次。
註冊現有帳戶失敗
如果您嘗試註冊現有 AWS 帳戶一次,而該註冊失敗,則當您再次嘗試時,錯誤訊息可能會通知您堆疊集存在。若要繼續,您必須在帳戶團隊中移除已佈建的產品。
如果第一次註冊失敗的原因是您忘記事先在帳戶中建立 AWSControlTowerExecution
角色,您會收到正確地告訴您建立角色的錯誤訊息。不過,當您嘗試建立角色時,您可能會收到另一個錯誤訊息,指出 AWS Control Tower 無法建立角色。發生此錯誤是因為處理程序已部分完成。
在這種情況下,您必須採取兩個復原步驟,才能繼續註冊現有的帳戶。首先,您必須透過 AWS Service Catalog 主控台終止 Account Factory 佈建的產品。接下來,您必須使用 AWS Organizations 主控台,手動將帳戶移出 OU 並移回根目錄。完成之後,請在帳戶中建立 AWSControlTowerExecution
角色,然後再次填寫 Enroll account (註冊帳戶) 表單。
註冊失敗的另一個可能原因是帳戶具有現有的 AWS Config 資源。在這種情況下,請參閱註冊具有現有 AWS Config 資源的帳戶,以取得如何修改現有資源的指示。
無法更新帳戶團隊帳戶
當帳戶處於不一致狀態時,無法從 Account Factory 或 成功更新 AWS Service Catalog。
案例 1:您可能會遇到類似以下的錯誤訊息:
AWS Control Tower could not baseline VPC in the managed account because of
existing resource dependencies.
常見原因:AWSControl Tower 一律會在初始佈建VPC期間移除 AWS 預設值。若要VPC在帳戶中具有 AWS 預設值,您必須在帳戶建立後新增該預設值。 AWSControl Tower 有自己的預設值VPC來取代 AWS 預設 VPC,除非您按照演練向您顯示的方式設定 Account Factory,因此 AWS Control Tower VPC 完全不會佈建 。然後,帳戶沒有 VPC。VPC 如果您想要使用該 AWS 預設值,則必須重新新增該預設值。
不過,AWSControl Tower 不支援 AWS 預設 VPC。部署預設 VPC 的話,會導致帳戶進入 Tainted
狀態。當它處於該狀態時,您無法透過 更新帳戶 AWS Service Catalog。
要採取的動作:您必須刪除VPC您新增的預設值,然後才能更新帳戶。
注意
Tainted
狀態會導致後續問題:未更新的 帳戶可能會阻止對其屬於其中一部分的 OU 啟用控制項。
案例 2:您可能會看到類似以下的錯誤訊息:
AWS Control Tower detects that your enrolled account has been moved to a new
organizational unit.
常見原因:您嘗試將帳戶從一個已註冊的 OU 移至另一個,但舊 AWS 的 Config 規則仍然存在。帳戶處於不一致狀態。
要採取的動作:
如果打算移動帳戶:
-
在 Service Catalog 中終止帳戶。
-
再次註冊。
-
內容/影響:部署的 AWS Config 規則與目的地 OU 指定的組態不相符。
-
AWS 組態規則可能會保留在先前的 OU 中,導致意外支出。
-
由於資源命名衝突,嘗試重新註冊或更新帳戶將會失敗。
如果帳戶意外移動:
-
將 帳戶傳回其原始 OU。
-
從 Service Catalog 更新帳戶。
-
在啟動參數中,輸入帳戶原先所在的 OU。
-
內容/影響:如果帳戶未傳回至其原始 OU,其狀態將與其所在的新 OU 指定的控制項不一致。
-
更新帳戶不是有效的修復,因為它不會刪除與其先前 OU 相關聯的 AWS Config 規則。
無法更新登陸區域
AWS 如果更新失敗,Control Tower 不會復原至先前的登陸區域版本。您可能會發現您的登陸區域處於不確定狀態。如果是,請聯絡 AWS 支援。
登陸區域更新可能會失敗,原因有幾個。
-
不符合先決條件
-
AWS Config 資源存在於特定帳戶中
-
關閉的帳戶存在
不符合先決條件
登陸區域更新必須符合與登陸區域設定相同的先決條件。更新之前,請檢閱啟動前檢查。
AWS Config 安全 OU 帳戶中存在 資源
請勿在稽核和日誌封存帳戶中新增 AWS Config 資源。登陸區域更新程序無法在存在這些資源的情況下完成。這些限制類似於第一次註冊帳戶或設定登陸區域的限制。如需詳細資訊,請參閱註冊具有現有 AWS Config 資源的帳戶。
已關閉的帳戶存在
當帳戶處於關閉或暫停狀態時,當您嘗試更新登陸區域時,可能會遇到問題。您必須先刪除每個已關閉帳戶上的佈建產品,才能對登陸區域執行更新。
在 AWS Service Catalog 佈建的產品頁面上,您可能會看到類似以下的錯誤訊息:
AWSControlTowerExecution role can't be assumed on the account.
常見原因:您已暫停帳戶,但不刪除佈建的產品。
要採取的動作:如果您看到此錯誤,您有兩個選項:
-
聯絡 AWS 支援並重新開啟帳戶,刪除佈建的產品,然後再次關閉帳戶。
-
從 StackSets 因為帳戶關閉而孤立的資源中移除。(只有在 StackSets 具有目前狀態且您未移除的執行個體時,才能使用此選項。)
若要從 移除資源 StackSets,請為每個已關閉的帳戶執行此操作:
-
針對已關閉的帳戶,前往每個 AWS Control Tower StackSets 並從 StackInstances 每個區域移除 。
-
IMPORTANT:選擇「保留堆疊」選項,讓 僅 StackSet 移除堆疊執行個體。 StackSet 無法從已關閉的帳戶擔任角色,因此如果嘗試擔任該
AWSControlTowerExecution
角色,則將失敗,這會導致您收到的錯誤訊息。
提及的失敗錯誤 AWS Config
如果在 AWS Control Tower 支援的任何 AWS 區域中啟用 AWS Config ,您可能會因為預先檢查失敗而收到錯誤訊息。由於 的一些基本行為,訊息可能未充分解釋問題 AWS Config。
您可能會收到如下的錯誤訊息:
-
AWS Control Tower cannot create an AWS Config delivery channel because one already exists. To continue, delete the existing delivery channel and try again .
-
AWS Control Tower cannot create an AWS Config configuration recorder because one already exists. To continue, delete the existing delivery channel and try again .
常見原因:在 AWS 帳戶上啟用 AWS Config 服務時,它會建立具有預設命名的組態記錄器和交付管道。如果您透過主控台停用 AWS Config 服務,則不會刪除組態記錄器或交付管道。您必須透過 刪除它們CLI,或修改它們以供 AWS Control Tower 使用。如果在 AWS Control Tower 支援的任何區域中啟用 AWS Config 服務,可能會導致此故障。
如果帳戶有現有的 AWS Config 資源,請參閱註冊具有現有 AWS Config 資源的帳戶,以取得如何修改現有資源的指示。
採取動作:在所有支援的區域中,刪除組態記錄器和交付通路。停用 AWS Config 是不夠的,組態記錄器和交付管道必須透過 刪除CLI。從 刪除組態記錄器和交付管道之後CLI,您可以再次嘗試啟動 AWS Control Tower 並註冊帳戶。
如果您正在部署佈建產品,您必須在重試之前刪除佈建產品。否則,您可能會看到類似以下的錯誤訊息:
-
An error occurred (InvalidParametersException) when calling the ProvisionProduct operation: A stack named
already exists.Stackname
在訊息中,
指定堆疊的名稱。Stackname
以下是一些範例 AWS Config CLI命令,您可以用來判斷組態記錄器和交付管道的狀態。
檢視命令:
-
aws configservice describe-delivery-channels
-
aws configservice describe-delivery-channel-status
-
aws configservice describe-configuration-recorders
-
The normal response is something like "name": "default"
刪除命令:
-
aws configservice stop-configuration-recorder --configuration-recorder-name
NAME-FROM-DESCRIBE-OUTPUT
-
aws configservice delete-delivery-channel --delivery-channel-name
NAME-FROM-DESCRIBE-OUTPUT
-
aws configservice delete-configuration-recorder --configuration-recorder-name
NAME-FROM-DESCRIBE-OUTPUT
如需詳細資訊,請參閱 AWS Config 文件
找不到啟動路徑錯誤
當您嘗試建立新帳戶時,可能會看到類似如下的錯誤訊息:
No launch paths found for resource: prod-dpqqfywxxxx
此錯誤訊息由 產生 AWS Service Catalog,這是協助在 AWS Control Tower 中佈建帳戶的整合服務。
常見原因:
-
您可能會以根登入。 AWS當您以根使用者身分登入時,Control Tower 不支援建立帳戶。
-
您的 IAM Identity Center 使用者尚未新增至適當的許可群組。您可能需要將 IAM Identity Center 使用者新增至其中一個許可群組: AWSAccountFactory(適用於最終使用者存取) 或 AWSServiceCatalogAdmins(適用於管理員存取)。
-
如果您以IAM使用者身分進行身分驗證,則必須將其新增至 AWS Service Catalog 產品組合,使其具有正確的許可。
如果您擁有正確的許可,但偵測到 AWS Control Tower 偏離,且需要偏離修復,也會發生此問題。若要修復大多數類型的偏離,請在登陸區域設定頁面上選擇重設。
收到權限不足錯誤
您的帳戶可能沒有必要許可,無法在特定情況下執行特定工作 AWS Organizations。如果您遇到以下類型的錯誤,請檢查所有許可區域,例如 IAM或 IAM Identity Center 許可,以確保您的許可不會遭到這些位置的拒絕:
You have insufficient permissions to perform AWS Organizations API actions
.
如果您認為您的工作需要您嘗試的動作,但找不到任何相關限制,請聯絡您的系統管理員或 AWS 支援
Detective 控制項不會對帳戶生效
如果您最近已將 AWS Control Tower 部署擴展到新的 AWS 區域,新套用的偵測性控制不會在您在任何區域中建立的新帳戶上生效,直到由 AWS Control Tower OUs管理的個別帳戶更新為止。現有帳戶的現有偵測控制仍然有效。
如果您在更新帳戶之前嘗試啟用偵測控制,您可能會看到類似以下的錯誤訊息:
AWS Control Tower can't enable the selected control on this OU. AWS Control Tower cannot apply the control on the OU ou-xxx-xxxxxxxx, because child accounts
have dependencies that are missing. Update all child accounts under the OU, then try
again.
要採取的動作:更新帳戶。
若要從 AWS Control Tower 主控台更新您的帳戶,請參閱 何時更新 AWS Control Tower OUs和帳戶。
若要以程式設計方式更新多個個別帳戶,您可以使用APIs來自 的 AWS Service Catalog 和 自動化 AWS CLI更新。如需如何處理更新程序的詳細資訊,請參閱此影片演練。 您可以替換 UpdateProvisionedProductAPI來取代影片中ProvisionProductAPI顯示的 。
如果您在帳戶上啟用偵測性控制時遇到進一步困難,請聯絡 AWS Support
傳回超出速率的錯誤 AWS Organizations API
可能的原因
在 AWS Control Tower 執行每日掃描時,您的工作負載正在執行,以檢查您的 SCPs 是否已漂移。
要遵循的步驟
如果您遇到API限流或rate exceeded
錯誤,請嘗試下列步驟:
-
在不同時間執行工作負載。(請參閱依區域區分的 AWS Control Tower SCP變異掃描排程,以了解 AWS Control Tower 何時執行其稽核掃描。)
-
如果您透過 APIs直接呼叫 HTTP:使用 AWS SDK, 會自動重試失敗的動作
-
透過 Service Quotas 和 AWS Support 請求提高限制
您可以在此處找到 Elastic Beanstalk API 中調節說明的故障診斷範例: https://aws.amazon.com/premiumsupport/knowledge-center/elastic-beanstalk-api-throttling-errors/
無法將 Account Factory 帳戶直接從一個 AWS Control Tower 登陸區域移至另一個 AWS Control Tower 登陸區域
警告
此實務不符合合格帳戶註冊的先決條件,因為合格帳戶必須屬於相同的整體AWS組織,而且每個組織可能只有一個登陸區域。如果您已嘗試執行此動作,且發現自己收到多個錯誤訊息,以下是一些可能有幫助的資訊。
若要將您透過 Account Factory 佈建的帳戶移至AWS另一個 Control Tower 管理的登陸區域,在另一個管理帳戶下,您必須從原始 OU 中移除與該帳戶相關聯的所有IAM角色和堆疊。從部署帳戶的每個區域移除這些資源。
注意
移除資源的最佳方式是先取消佈建原始 OU 中的帳戶,然後再嘗試移動該帳戶。
如果您不移除資源,則註冊新的 OU 將會失敗,有些令人驚嘆。您可能會遇到一或多個錯誤訊息,而且會持續收到類似的錯誤訊息,直到從部署帳戶的每個區域移除剩餘的角色和堆疊為止。
每次收到錯誤訊息時,您必須從新的 OU 移除帳戶、刪除作為錯誤訊息主旨的舊資源,然後嘗試將帳戶移回新的 OU。必須為每個剩餘的資源重複此程序 removing-and-deleting,針對帳戶部署的每個區域,可能是 10 或 20 次。這些重複錯誤是因為帳戶已佈建至具有 SCP 的 OU,以防止刪除IAM角色。您可以在重試之前刪除帳戶的所有資源,讓復原程序更短。
以下範例代表如果未刪除的角色和堆疊保留,您可能會收到失敗訊息的類型。只要舊資源仍然存在,您每次嘗試註冊帳戶時,最有可能一次看到其中一個訊息。
資源 ID 字串的值已針對範例修改。它們的值不會與您可能收到的錯誤訊息相同。您可能會看到類似下列範例的訊息:
-
AWS Control Tower cannot create the IAM role
aws-controltower-AdministratorExecutionRole
because the role already exists. To continue, delete the existing IAM role and try again. -
AWS Control Tower cannot create the IAM role
aws-controltower-ConfigRecorderRole
because the role already exists. To continue, delete the existing IAM role and try again. -
AWS Control Tower cannot create the IAM role
aws-controltower-ForwardSnsNotificationRole
because the role already exists. To continue, delete the existing IAM role and try again.
或者,您可能會看到有關堆疊集失敗的錯誤訊息,類似:
"Error\":\"StackSetFailState\", \"Cause\":\"StackSetOperation on AWSControlTowerBP-BASELINE-CLOUDWATCH with id
8aXXXXf5-e0XX-4XXa-bc4XX-dXXXXXee31
has reached SUCCEEDED state but has 1 NON-CURRENT stack instances; here is the summary :{ StackSet Id: AWSControlTowerBP-BASELINE-CLOUDWATCH:40XXXbf2-Xead-46a1-XXXa-eXXXXecb2ee2
, Stack instance Id: arn:aws:cloudformation:eu-west-1:1X23456789XX
: stack/StackSet-AWSControlTowerBP-BASELINE-CLOUDWATCH-4feXXXXXX-ecXX-XXc6-bXXX-4ae678/4feXXXXXX-ecX-4ae123458
, Status: OUTDATED, Status Reason: ResourceLogicalId:ForwardSnsNotification, ResourceType:AWS::Lambda::Function, ResourceStatusReason:aws-controltower-NotificationForwarder already exists in stack arn:aws:cloudformation:eu-west-1:1X23456789XX
: stack/StackSet-AWSControlTowerBP-BASELINE-CLOUDWATCH-4feXXXXXX-ecXX-XXc6-bXXX-4ae678/4feXXXXXX-ecX-4ae123458
.
從第一個 OU 移除所有剩餘的資源後,您就可以成功邀請、佈建或註冊帳戶到新的 OU。
AWS 支援
如果您想要將現有的成員帳戶移至不同的支援方案,您可以使用根帳戶登入資料登入每個帳戶、比較方案
當您變更支援計畫時,建議您更新 MFA和 帳戶安全聯絡人。