AWS Config 配信チャネルを再作成する方法を教えてください。
AWS Config 配信チャネルを削除しましたが、そのチャネルを再作成したいです。
簡単な説明
AWS Config コンソールを使用して AWS Config をセットアップする際、セットアッププロセスが AWS リソースの設定をガイドします。リソースは、配信チャネルに通知を送信するように構成されています。AWS Config のセットアップには、以下のリソースの設定が含まれます。
- Amazon Simple Storage Service (Amazon S3) バケット
- Amazon Simple Notification Service (Amazon SNS) トピック
- AWS Identity and Access Management (IAM) ロール
- 記録するリソースタイプ
AWS コマンドラインインターフェイス (AWS CLI) で delete-delivery-channel コマンドを使用して AWS Config 配信チャネルを削除すると、設定レコーダーは無効になります。設定レコーダーを有効にしようとすると、次のエラーが表示されます。
「配信チャネルを使用して設定レコーダーを起動できません。」
注: AWS Config コンソールを使用して配信チャネルを再作成することはできません。
解決策
**注:**AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
次の手順を実行して、AWS Config 配信チャネルを手動で再作成し、設定レコーダーを有効にします。
注: 削除した AWS Config 配信チャネルに関連付けられている Amazon S3 バケット、S3 トピック、IAM ロールを削除していない場合は、これらの手順をスキップできます。
Amazon S3 バケットを作成する
次の手順を実行します。
- お使いの AWS 設定サービスと同じ AWS リージョンで Amazon S3 コンソールを開きます。
- ナビゲーションペインで、[バケットを作成] を選択します。
- [バケット名] に S3 バケットの名前を入力し、[バケットを作成] を選択します。
- S3 バケットで、先ほど作成した S3 バケットを選択します。
- [アクセス許可] を選択し、次に [バケットポリシー] を選択します。
- 次のバケットポリシーの例を入力したら、[保存] を選択します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSConfigBucketPermissionsCheck", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::targetBucketName", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID" } } }, { "Sid": "AWSConfigBucketExistenceCheck", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::targetBucketName", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID" } } }, { "Sid": "AWSConfigBucketDelivery", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::targetBucketName/[optional] prefix/AWSLogs/sourceAccountID/Config/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "AWS:SourceAccount": "sourceAccountID" } } } ] }
SNS トピックを作成する
次の手順を実行します。
- AWS Config サービスと同じリージョンで Amazon SNS コンソールを開きます。
- ナビゲーションペインで [トピック] を選択してから、[トピックの作成] を選択します。
- [名前] に、SNS トピックの名前を入力します。次に [トピックの作成] を選択します。
- [サブスクリプションの作成] を選択します。
- [プロトコル] には、[E メール] を選択します。
- [エンドポイント] に、この SNS トピックに関連付けるメールアドレスを入力したら、[サブスクリプションの作成] を選択します。
- サブスクリプション確認メールをチェックし、[サブスクリプションを確認] を選択します。
サブスクリプションを確認すると、**サブスクリプションが確認されました!**というメッセージが表示されます。
注: SNS トピックを使用するには、必要なアクセス許可があることを確認してください。
IAM ロールを作成する
次の手順を実行します。
-
IAM コンソールを開きます。
-
[ロール] を選択し、**[ロールの作成]**を選択します。
-
[信頼されたエンティティの種類を選択] から、[AWS サービス] を選択します。
-
[他の AWS サービス用ユースケース] で、[設定] を選択します。
-
[ユースケースを選択] で [設定 - カスタマイズ可能] を選択したら、[次へ: アクセス許可] を選択します。
-
[次へ] を選択し、[ロール名] を入力したら、[ロールの作成] を選択します。
-
作成したロールを選択し、[インラインポリシーの作成] を選択し、次に [JSON] タブを選択します。
-
次のポリシー例を参照してください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::arn:aws:s3:::targetBucketName/[optional] prefix/AWSLogs/sourceAccountID-WithoutHyphens/*" ], "Condition": { "StringLike": { "s3:x-amz-acl": "bucket-owner-full-control" } } }, { "Effect": "Allow", "Action": [ "s3:GetBucketAcl" ], "Resource": "arn:aws:s3:::targetBucketName" }, { "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:region:account_number:targetTopicName" } ] }
-
[ポリシー名] に名前を入力し、[ポリシーの作成] を選択します。
KMS キーを作成する
AWS Config によって Amazon S3 バケットに配信されるオブジェクトには、AWS Key Management Service (AWS KMS) ベースの暗号化を使用するのがベストプラクティスです。AWS Config サービスと同じリージョンに KMS キーを作成します。
次の手順を実行します。
- AWS KMS コンソールを開きます。
- ナビゲーションペインで [カスタマーマネージドキー] を選択し、次に [キーを作成] を選択します。
- [キーの種類] で [対称] を選択し、対称暗号化 KMS キーを作成します。
- [キーの使用法] で [暗号化と復号化] オプションを選択したら、[次へ] を選択します。
- KMS キーのエイリアスを入力します。[次へ] を選択します。
注: エイリアス名の先頭に aws/ は使用できません。 - KMS キーを管理できる IAM ユーザーとロールを選択します。[次へ] を選択します。
- 暗号化操作でキーを使用できる IAM ユーザーとロールを選択します。[次へ] を選択します。
- [完了] を選択して KMS キーを作成します。
- ナビゲーションペインで、[カスタマーマネージドキー] を選択します。次に、[カスタマーマネージドキー] で、作成したキーを選択します。
- [キーポリシー] タブで、[ポリシービューに切り替え] を選択します。次に、[編集] を選択します。
- AWS Config でカスタム IAM ロールを使用する場合は、追加のキーポリシーステートメントとして次のポリシーステートメントを入力します。次に、[変更を保存] を選択します。
{ "Statement": [ { "Sid": "AWSConfigKMSPolicy", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Resource": "myKMSKeyARN", "Principal": { "AWS": [ "arn:aws:iam:account_id:role/my-config-role-name" ] } } ] }
または、AWS Config にサービスリンクロール (SLR) を使用している場合は、次のポリシーステートメントを使用して KMS キーポリシーを更新します。
{ "Statement": [ { "Sid": "AWSConfigKMSPolicy", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "myKMSKeyARN", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID" } } } ] }
配信チャネルを作成する
次の手順を実行します。
-
次のテンプレート例をテキストエディタに入力し、JSON ファイルとして保存します。
{ "name": "default", "s3BucketName": "targetBucketName", "s3KeyPrefix": "Optionalprefix", "snsTopicARN": "arn:aws:sns:region:account_ID:targetTopicName", "s3KmsKeyArn": "arn:aws:kms:region:account_ID:KmsKey", "configSnapshotDeliveryProperties": { "deliveryFrequency": "Twelve_Hours" } }
注: S3 バケットポリシーにより、PutObject がデフォルトのプレフィックスではなく、特定のプレフィックスに制限されている場合は、S3KeyPrefix を指定する必要があります。ユースケースに合わせて deliveryFrequency の値を変更します。暗号化を有効にしない場合は、JSON ファイルから s3KmsKeyArn 値を省略します。
-
AWS CLI コマンド put-delivery-channel を実行します。
$ aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json
-
配信チャネルが作成されたことを確認するには、AWS CLI コマンド describe-delivery-channels を実行します。
$ aws configservice describe-delivery-channels
設定レコーダーを起動する
次の手順を実行します。
- AWS Config コンソールを開きます。
- ナビゲーションペインで [設定] を選択します。
- [記録が無効] で、[有効にする] を選択した後、[続行] を選択します。または、AWS CLI start-configuration-recorder コマンドを実行します。
$ aws configservice start-configuration-recorder --configuration-recorder-name configRecorderName
詳細については、「設定レコーダーの管理」と「AWS Config ルールでリソースを評価する」を参照してください。
関連情報

関連するコンテンツ
- 質問済み 7ヶ月前lg...
- 質問済み 6年前lg...
- 質問済み 1年前lg...
- 質問済み 7ヶ月前lg...
- AWS公式更新しました 1年前
- AWS公式更新しました 2年前
- AWS公式更新しました 6ヶ月前
- AWS公式更新しました 2年前