AWS Control Tower のアカウントレベルのベースライン継承状態を AWS CLI で確認してみた

AWS Control Tower のアカウントレベルのベースライン継承状態を AWS CLI で確認してみた

2026.01.26

はじめに

こんにちは、クラウド事業本部コンサルティング部のいたくらです。
AWS Control Tower の「組織」画面で、OU のベースラインステータスは「有効」なのに、配下のアカウントだけ「更新が利用できます」と表示されるケースに遭遇しました。
1-6.png

本記事では、アカウントレベルの継承状態(child enabled baseline)を AWS CLI で確認する方法と、実際に調査した結果を紹介します。

なお、本記事の検証はランディングゾーンバージョン 3.3、以下のランディングゾーン設定で実施しています。
2-3.png

三行まとめ

  • アカウントの継承状態は list-enabled-baselines--include-children オプションと parentIdentifiers フィルターを使って確認できる
  • OU とアカウントの lastOperationIdentifier が異なる場合、「更新が利用できます」と表示されることがある
  • 「更新が利用できます」と表示される場合は、OU の再登録で解消できる

前提知識:child enabled baseline とは

AWS Control Tower では、ベースラインは OU 単位で適用され、配下のアカウントはその設定を継承します。

公式ドキュメントには以下のように記載されています。

When you enable a baseline on an OU, that configuration is inherited by the OU's member accounts. Due to the fact of inheritance, we call it a child enabled baseline when we refer to the account.
引用:Types of baselines - AWS Control Tower

OU に適用されたベースラインを「parent enabled baseline」、アカウントが継承したベースラインを「child enabled baseline」と呼ぶようです。

アカウントの継承状態を確認する手順

アカウントの child enabled baseline を確認するには、以下の手順で行います。

Step 1: 全ての enabledbaseline を取得

まず、AWS 環境内の全ての enabledbaseline を取得します。

aws controltower list-enabled-baselines --region <ホームリージョン>

Step 2: 対象 OU の enabledbaseline ARN を特定

Step 1 の結果から、確認したい OU の enabledbaseline ARN を特定します。

targetIdentifier が対象の OU の ARN(arn:aws:organizations::<管理アカウントID>:ou/<組織ID>/<対象のOU ID> 形式)になっている行を探し、その arn フィールドの値を確認します。

{
    "arn": "arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XXXXYYYYZZZZZ",  // ← これを使う
    "baselineIdentifier": "arn:aws:controltower:ap-northeast-1::baseline/17BSJV3IGJ2QSGA2",
    "baselineVersion": "4.0",
    "targetIdentifier": "arn:aws:organizations::<管理アカウントID>:ou/<組織ID>/<対象のOU ID>",  // OU の ARN
    ...
}

Step 3: parentIdentifiers と --include-children で child enabled baseline を取得

Step 2 で特定した enabledbaseline ARN を parentIdentifiers フィルターに指定し、--include-children オプションを付けて実行します。

aws controltower list-enabled-baselines \
    --filter "parentIdentifiers=<対象OUのenabledbaseline ARN>" \
    --include-children \
    --region <ホームリージョン>

これにより、対象 OU 配下のアカウントの継承状態が確認できます。

確認できる情報

Step 3 のコマンドを実行すると、以下の情報が得られます。

フィールド 説明
arn アカウントの child enabled baseline の ARN
baselineVersion 継承しているベースラインのバージョン
targetIdentifier 対象アカウントの ARN
parentIdentifier 親 OU の enabledbaseline ARN
driftStatusSummary.types.inheritance.status 継承ドリフトの状態(IN_SYNC / DRIFTED
statusSummary.lastOperationIdentifier 最後に適用された操作の識別子

実際に調査してみた

事象

以下のように、OU のベースラインステータスは「有効」なのに、Foundational OU 配下のアカウントだけ「更新が利用できます」と表示されていました。
3.png

「更新が利用できます」をクリックすると、以下のメッセージが表示されました。
4.png

Foundational OU の調査

まず、Foundational OU の enabledbaseline ARN と lastOperationIdentifier を確認しました。

aws controltower list-enabled-baselines \
    --filter targetIdentifiers=arn:aws:organizations::xxxxxxxxxxxx:ou/o-aaaaaaaaaa/ou-xxxx-xxxxxxxx \
    --region ap-northeast-1
実行結果
{
    "enabledBaselines": [
        {
            "arn": "arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XOTP54HXF0D5VWBSN", // ← これが enabledbaseline ARN
            "baselineIdentifier": "arn:aws:controltower:ap-northeast-1::baseline/17BSJV3IGJ2QSGA2",
            "baselineVersion": "4.0",
            "driftStatusSummary": {
                "types": {
                    "inheritance": {
                        "status": "IN_SYNC"
                    }
                }
            },
            "targetIdentifier": "arn:aws:organizations::xxxxxxxxxxxx:ou/o-aaaaaaaaaa/ou-xxxx-xxxxxxxx",
            "statusSummary": {
                "status": "SUCCEEDED",
                "lastOperationIdentifier": "eca90736-85f1-48d3-b747-11ab8cdeec7c" // ← これが lastOperationIdentifier
            }
        }
    ]
}
~ $ 

結果から、

  • Foundational OU の enabledbaseline ARN:arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XOTP54HXF0D5VWBSN
  • lastOperationIdentifier:eca90736-85f1-48d3-b747-11ab8cdeec7c

であることが確認できました。

次に、この enabledbaseline ARN を使って配下のアカウントの継承状態を確認しました。

aws controltower list-enabled-baselines \
    --filter "parentIdentifiers=arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XOTP54HXF0D5VWBSN" \
    --include-children \
    --region ap-northeast-1
実行結果
{
    "enabledBaselines": [
        {
            "arn": "arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XAPJ2XLMQPD5VWB54",
            "baselineIdentifier": "arn:aws:controltower:ap-northeast-1::baseline/17BSJV3IGJ2QSGA2",
            "baselineVersion": "4.0",
            "driftStatusSummary": {
                "types": {
                    "inheritance": {
                        "status": "IN_SYNC"
                    }
                }
            },
            "targetIdentifier": "arn:aws:organizations::xxxxxxxxxxxx:account/o-aaaaaaaaaa/yyyyyyyyyyyy", // Infra アカウント
            "parentIdentifier": "arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XOTP54HXF0D5VWBSN",
            "statusSummary": {
                "status": "SUCCEEDED",
                "lastOperationIdentifier": "61f5824f-1b8d-4b64-808c-cd1768b83a7f"
            }
        },
        {
            "arn": "arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XAPQ8F7LX1D5VWB4K",
            "baselineIdentifier": "arn:aws:controltower:ap-northeast-1::baseline/17BSJV3IGJ2QSGA2",
            "baselineVersion": "4.0",
            "driftStatusSummary": {
                "types": {
                    "inheritance": {
                        "status": "IN_SYNC"
                    }
                }
            },
            "targetIdentifier": "arn:aws:organizations::xxxxxxxxxxxx:account/o-aaaaaaaaaa/zzzzzzzzzzzz", // delegated-admin アカウント
            "parentIdentifier": "arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XOTP54HXF0D5VWBSN",
            "statusSummary": {
                "status": "SUCCEEDED",
                "lastOperationIdentifier": "d32a87ba-aac1-49d5-be2a-02d261e5985f"
            }
        }
    ]
}

inheritance.statusIN_SYNC で、継承ドリフトは発生していませんでした。

しかし、Foundational OU の lastOperationIdentifiereca90736-85f1-48d3-b747-11ab8cdeec7c)と、
Infra アカウントの lastOperationIdentifier61f5824f-...)や
delegated-admin アカウント のlastOperationIdentifierd32a87ba-...)が異なることがわかりました。

Dev OU の調査

比較のため、「有効」と表示されている Dev OU 配下のアカウントも同様に確認しました。
5.png

まず、Dev OU の enabledbaseline ARN と lastOperationIdentifier を確認しました。

同様のコマンドで確認すると、以下の結果でした。

  • Dev OU の enabledbaseline ARN:arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XOJ1PEERXGD5FN1G7
  • lastOperationIdentifier:3d4a165a-3899-4acb-bb13-9a92fb7fc585

enabledbaseline ARN を使って Dev OU 配下のアカウントの継承状態を確認しました。

実行結果
{
    "enabledBaselines": [
        {
            "arn": "arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XALM9ACDZ3D5G7WL6",
            "baselineIdentifier": "arn:aws:controltower:ap-northeast-1::baseline/17BSJV3IGJ2QSGA2",
            "baselineVersion": "4.0",
            "driftStatusSummary": {
                "types": {
                    "inheritance": {
                        "status": "IN_SYNC"
                    }
                }
            },
            "targetIdentifier": "arn:aws:organizations::xxxxxxxxxxxx:account/o-aaaaaaaaaa/bbbbbbbbbbbb", // Member01 アカウント
            "parentIdentifier": "arn:aws:controltower:ap-northeast-1:xxxxxxxxxxxx:enabledbaseline/XOJ1PEERXGD5FN1G7",
            "statusSummary": {
                "status": "SUCCEEDED",
                "lastOperationIdentifier": "3d4a165a-3899-4acb-bb13-9a92fb7fc585"
            }
        }
    ]
}

Dev OU の lastOperationIdentifier3d4a165a-3899-4acb-bb13-9a92fb7fc585)と、
Member01 アカウントの lastOperationIdentifier3d4a165a-...)が一致していました。

比較結果

項目 Foundational OU Dev OU
OU の lastOperationIdentifier eca90736-... 3d4a165a-...
アカウントの lastOperationIdentifier 61f5824f-...異なる 3d4a165a-...同じ
コンソール表示 更新が利用できます 有効

原因

lastOperationIdentifier の違いから、以下のことがわかりました。

  • Dev OU:OU のベースライン適用時にアカウントも同時に更新された
  • Foundational OU:アカウントが OU のベースライン更新とは別のタイミングで登録・更新された

lastOperationIdentifier が異なることから、Foundational OU 配下のアカウントは OU のベースライン更新とは別のタイミングで登録・更新されたと考えられます。このため、コンソールでは「更新が利用できます」と表示されていました。

解決方法

コンソールのメッセージ通り、Foundational OU を再登録することで、配下のアカウントのリソースが最新のベースラインバージョンに同期され、「AWS Control Tower baseline status = 有効」となります。
6.png

まとめ

  • アカウントの継承状態(child enabled baseline)は、list-enabled-baselines--include-children オプションと parentIdentifiers フィルターを使って確認できる
  • OU とアカウントの lastOperationIdentifier を比較することで、アカウントのリソースが OU のベースライン更新と同期しているかどうかを判断できる
  • inheritance.statusIN_SYNC でも、lastOperationIdentifier が異なる場合は「更新が利用できます」と表示されることがある
  • この状態を解消するには、OU の再登録を行う(OU 移動に起因する場合はアカウント自動登録機能を有効にしておけば回避できると思います)

この記事がどなたかのお役に立てれば幸いです。

以上、クラウド事業本部コンサルティング部のいたくら(@itkr2305)でした!

参考ドキュメント

この記事をシェアする

FacebookHatena blogX

関連記事