Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
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 ルールでリソースを評価する」を参照してください。
関連情報
- 言語
- 日本語

関連するコンテンツ
- 質問済み 1年前