AWS Config の組織のサブスクリプション(信頼されたアクセス)が有効になっているときの対応(Audit アカウントは新規作成の場合)

2024.03.21

アノテーション 顧客推進チーム(構築担当)のいたくらです。
Control Tower のランディングゾーンを設定する際に、タイトルの状況になっているときの対応方法をまとめました。

背景

Control Tower のランディングゾーンを設定する際に、AWS Config の組織のサブスクリプション(信頼されたアクセス)が有効になっている状態で、「ランディングゾーンの設定」をクリックすると、以下のエラーが表示されます。

このエラーを解消する方法を紹介します。

前提

Control Tower のランディングゾーン設定は、AWS Organizations や Organizations 関連サービスの利用状況により、対応方法が変わってきます。
本ブログで紹介する対応方法の前提条件は下記になります。

管理アカウント

  • 管理アカウントの組織構造は、以下のような状態
  • AWS Organizations のサービスの「統合されたサービス」は、以下のサービスについて有効となっている状態
    • Amazon GuardDuty
    • AWS IAM Identity Center (AWS Single Sign-On)
    • CloudFormation StackSets
    • Config
    • IAM Access Analyzer
    • RAM
    • Security Hub
  • Config の委任管理者として「itkr_mem01」を設定済み
  • GuardDuty、Security Hub についても委任管理者として「itkr_mem01」を設定済み

メンバーアカウント(itkr_mem01)

  • AWS Config aggregator を作成済み
    • ソースタイプ: 個々のアカウント
    • リージョン: ap-northeast-1 のみ
    • ソースアカウント: 管理アカウント、itkr_mem02、itkr_mem03

Control Tower の Audit アカウント

  • 新規作成する(メールアドレスを用意しておく)

結論

AWS Organizations のサービスの「統合されたサービス」の Config のページに移動し、「信頼されたアクセスを無効にする」をクリックしてください。

もしも以下のエラーが表示されて、信頼されたアクセスを無効にできなかった場合は、下記のコマンドを管理アカウントで実行してください。

エラーが表示された場合に管理アカウントで実行するコマンド

# 指定したアカウントが委任管理者である AWS サービスを一覧表示
aws organizations list-delegated-services-for-account --account-id <委任管理者 AWS アカウントID>

# 指定したアカウントを、指定された AWS サービスの委任管理者から削除
aws organizations deregister-delegated-administrator --account-id <委任管理者 AWS アカウントID> --service-principal config.amazonaws.com

# Config の信頼されたアクセスを無効化
aws organizations disable-aws-service-access --service-principal config.amazonaws.com

やってみた

今回は「信頼されたアクセスを無効にする」をクリックした際にエラーが表示されたので、コマンドを実行しました。
実際に管理アカウントで CloudShell を起動して、実行した結果がこちらです。
結論に記載したコマンドを実行した後、Config が一覧から消えているか確認しています。
確認後、Config の信頼されたアクセスを無効化しています。

[cloudshell-user@ip-xx-xx-xx-xx ~]$ aws organizations list-delegated-services-for-account --account-id XXXXXXXXXXXX
{
    "DelegatedServices": [
        {
            "ServicePrincipal": "config.amazonaws.com",
            "DelegationEnabledDate": "2024-03-17T09:44:42.464000+00:00"
        },
        {
            "ServicePrincipal": "guardduty.amazonaws.com",
            "DelegationEnabledDate": "2024-01-16T02:18:07.313000+00:00"
        },
        {
            "ServicePrincipal": "securityhub.amazonaws.com",
            "DelegationEnabledDate": "2024-01-16T02:31:39.623000+00:00"
        }
    ]
}
[cloudshell-user@ip-xx-xx-xx-xx ~]$ aws organizations deregister-delegated-administrator --account-id XXXXXXXXXXXX --service-principal config.amazonaws.com
[cloudshell-user@ip-xx-xx-xx-xx ~]$ aws organizations list-delegated-services-for-account --account-id XXXXXXXXXXXX
{
    "DelegatedServices": [
        {
            "ServicePrincipal": "guardduty.amazonaws.com",
            "DelegationEnabledDate": "2024-01-16T02:18:07.313000+00:00"
        },
        {
            "ServicePrincipal": "securityhub.amazonaws.com",
            "DelegationEnabledDate": "2024-01-16T02:31:39.623000+00:00"
        }
    ]
}
[cloudshell-user@ip-xx-xx-xx-xx ~]$ aws organizations disable-aws-service-access --service-principal config.amazonaws.com

AWS Organizations のサービスの「統合されたサービス」の Config のページを確認すると、ステータスが「信頼されたアクセスが無効」になっています。
この表示になっていれば無効化は完了です。

マネコン上ではなく、CloudShell で確認することも可能です。

# 組織との統合を有効にした AWS サービスの一覧を表示
aws organizations  list-aws-service-access-for-organization

AWS Config の組織のサブスクリプション(信頼されたアクセス)の無効化が完了すれば、ランディングゾーン設定ができるようになります。

あとがき

Control Tower のランディングゾーンを設定は、管理アカウントや Organizations 関連サービスの利用状況によっては考慮点が増えます。
信頼されたアクセスの中で、ランディングゾーン設定時に無効化しなければいけないのは Config、CloudTrail のみですが、今回のように場合によってはすんなり無効化できないときもあるのでお気をつけください。
この記事がどなたかのお役に立てれば幸いです。

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。
サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。