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 のカスタムリソースを作成する