AWS Organizations の AWS Config ルールを作成または削除しようとすると、CREATE_FAILED または DELETE_FAILED エラーが発生します。
簡単な説明
次の例を含む複数の要因で組織構成ルールが機能しなくなる可能性があります。
- アクセス許可
- 非アクティブなメンバーアカウント
- 設定レコーダーの欠落
組織構成ルールのエラーを解決するには、次の手順を実行します。
- メンバーアカウントのルールステータスの詳細を確認します。
- ルールに関するエラーの原因をトラブルシューティングします。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
メンバーアカウントルールのステータス詳細を確認する
メンバーアカウントルールでの失敗および成功ステータスの詳細を確認するには、get-organization-config-rule-detailed-status コマンドを実行します。
aws configservice get-organization-config-rule-detailed-status --organization-config-rule-name your-rule-name
**注:**your-rule-name を実際の組織構成ルール名に置き換えます。
出力の ErrorCode と ErrorMessage を参照し、ルールでエラーが発生した原因を確認します。
ルールでエラーが発生した原因のトラブルシューティング
メンバーアカウントが有効であることを確認する
すべてのメンバーアカウントが有効であることを確認するには、list-accounts コマンドを実行します。
aws organizations list-accounts --query 'Accounts[*].[Id, Status]' --output table
メンバーアカウントの AWS Config を設定する
メンバーアカウントごとに AWS Config を設定するには、コンソール、AWS CLI、または AWS CloudFormation を使用します。すべてのメンバーアカウントで AWS Config を設定した後、put-organization-config-rule を実行してルールを再度デプロイします。
イベントログをレビューする
AWS CloudTrail コンソールを開き、ナビゲーションペインで [イベント履歴] を選択します。ログを絞り込むには、ドロップダウンリストからイベント名を選択し、検索フィールドに PutOrganizationConfigRule または DeleteOrganizationConfigRule と入力します。フィルターしたログの結果に OrganizationAccessDeniedException エラーがないかを確認します。
委任管理者メンバーアカウントを更新する
呼び出しは、AWS Organizations の管理アカウントまたは委任管理者メンバーアカウントから行う必要があります。上記のアカウント以外から PutOrganizationConfigRule API、DeleteOrganizationConfigRule API などの呼び出しを行った場合は、その呼び出しは失敗します。
委任管理者メンバーアカウントを特定するには、list-delegated administrators コマンドを実行します。
aws organizations list-delegated-administrators --service-principal=config-multiaccountsetup.amazonaws.com
アクセス許可を更新する
OrganizationAccessDeniedException エラーが発生した場合は、必要なアクセス許可が欠けている可能性があります。AWS Config 用の AWS Identity and Access Management (IAM) ロールには、組織構成ルールを作成、削除するための、次のアクセス許可が必要です。
- PutConfigRule
- PutOrganizationConfigRule
- DeleteOrganizationConfigRule
詳細については、「AWS Config に割り当てられた IAM ロールのアクセス許可」を参照してください。
エラーメッセージをレビューする
ResourceInUseException エラーが発生した場合は、エラーメッセージをレビューし、原因を特定してください。
- エラーメッセージが、是正措置がルールに関連付けられていることを示している場合は、その是正措置を解決してください。
- エラーメッセージが、ステータスが CREATE_SUCCESSFUL ではないことを示している場合は、AWS Config メンバーアカウントの IAM ロールに DeleteConfigRule アクセス許可が含まれていることを確認してください。
カスタム組織構成ルールを作成する
AWS Lambda 関数のリソースポリシーで AWS Config サービスプリンシパルによるポリシーの呼び出しが許可されていない場合は、add-permission コマンドを実行してアクセス許可を付与します。
aws lambda add-permission --function-name function-name --region region --action "lambda:InvokeFunction" --principal config.amazonaws.com --source-account source-account --statement-id Allow
注: 実際のものでそれぞれ、function-name を Lambda 関数名に、region を AWS リージョンに、source-account を管理アカウントの ID に置き換えます。
組織内の複数のメンバーアカウントにアクセス許可を付与するには、メンバーアカウントごとにコマンドを実行します。source-account を各メンバーアカウントの ID に置き換えます。
関連情報
AWS Config ルールが機能していない理由を知りたいです