AWS Config 設定レコーダーの作成時に MaxNumberOfConfigurationRecordersExceededException エラーが発生する理由を知りたいです。

所要時間2分
0

AWS Config 設定レコーダーを作成する際、MaxNumberOfConfigurationRecordersExceededException というエラーが発生します。

簡単な説明

AWS Config は、設定レコーダーを使用してリソース設定の変更を記録します。AWS Config では、アカウントの AWS リージョンごとに 1 つの設定レコーダーしか使用できません。MaxNumberOfConfigurationRecordersExceededException エラーは、そのリージョン内アカウントには既に設定レコーダーが存在するため、新しい設定レコーダーを作成できないことを示しています。このエラーは、レコーダーの作成に AWS Config コンソール、AWS コマンドラインインターフェイス (AWS CLI)、AWS CloudFormation のいずれを使用した場合にも発生します。

解決策

注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI でのエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

MaxNumberOfConfigurationRecordersExceededException エラーを解決して新しい設定レコーダーを作成するには、既存の設定レコーダーを特定し、削除する必要があります。

注: コンソールから設定レコーダーを削除することはできません。削除はプログラムで実行する必要があります。

まず、必要なコマンドを実行するための正しい AWS Identity and Access Management (IAM) アクセス許可が設定されていることを確認します。次に、AWS CLI または CloudFormation を使用すると、既存の設定レコーダーを特定して削除できます。

IAM アクセス許可

設定レコーダーを記述して削除するには、次の IAM アクセス許可を追加します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "config:DescribeConfigurationRecorders",
                "config:DeleteConfigurationRecorder"
            ],
            "Resource": "*"
        }
    ]
}

設定レコーダーを起動および停止するには、次の IAM アクセス許可を追加します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "config:PutConfigurationRecorder",
                "iam:PassRole",
                "config:DescribeConfigurationRecorders",
                "config:StopConfigurationRecorder",
                "config:StartConfigurationRecorder",
                "config:DeleteConfigurationRecorder"
            ],
            "Resource": "*"
        }
    ]
}

AWS CLI で設定レコーダーを特定して削除する

次の手順を実行します。

既存の設定レコーダー名を特定する

特定のリージョン内の既存の設定レコーダーを特定するには、describe-configuration-recorders コマンドを実行します。

$aws configservice describe-configuration-recorders --region RegionID

注: RegionID は、実際のリージョンに置き換えます。

出力を確認します。既存の設定レコーダー名は、出力内の name の横に表示されます。

既存の設定レコーダーを削除する

既存の設定レコーダーを削除するには、delete-configuration-recorder コマンドを実行します。

$aws configservice delete-configuration-recorder --configuration-recorder-name RecorderName --region RegionID

注: 実際のものでそれぞれ、RecorderName を設定レコーダー名に、RegionID リージョン ID に置き換えます。レコーダーを正常に削除すると、delete-configuration-recorder コマンドは出力を返さなくなります。

API コールを使用してレコーダーを起動および停止する

設定レコーダーを起動するには、次のコマンドを実行します。

$aws configservice start-configuration-recorder --configuration-recorder-name RecorderName

**注:****RecorderName ** は、実際の設定レコーダー名に置き換えます。

設定レコーダーを停止するには、次のコマンドを実行します。

$aws configservice stop-configuration-recorder --configuration-recorder-name RecorderName

**注:****RecorderName ** は、実際の設定レコーダー名に置き換えます。

CloudFormation で設定レコーダーを特定して削除する

CloudFormation StackSet テンプレートを使用して AWS Config を有効にする場合は、次のタスクを実行して設定レコーダーを識別し、削除します。

設定レコーダーを特定して削除するコードロジックを記述するには、AWS Lambda ベースのカスタムリソースを使用して次のことを行います。

設定レコーダーを削除した後は、カスタムリソースに cfn-response モジュールを使用して新しい設定レコーダーを作成できます。次に StartConfigurationRecorder API を実行するとレコーダーを起動できます。

関連情報

Python、AWS Lambda、crhelper を使用して CloudFormation のカスタムリソースを作成する

AWS公式
AWS公式更新しました 21日前
コメントはありません