AWS Config Delivery 配信チャネルを再作成するにはどうすればよいですか?

最終更新日: 2020 年 8 月 11 日

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 Config コンソールを使用して配信チャネルを再作成することはできません。

解決方法

次の手順通り、AWS Config 配信チャネルを手動で再作成し、設定レコーダーをオンにします。

注: Amazon S3 バケット、S3 トピック、および削除された AWS Config 配信チャネルに関連付けられた IAM ロールを削除していない場合は、これらのステップをスキップできます。

Amazon S3 バケットを作成する

1.    AWS Config サービスと同じリージョンで Amazon S3 コンソールを開き、[Create bucket (バケットの作成)] を選択します。

2.    [Bucket name (バケット名)] に S3 バケットの名前を入力し、[Next (次へ)] を選択します。

3.    [Next (次へ)]、[Next (次へ)]、[Create bucket (バケットの作成)] の順に選択します。

4.    S3 バケットで、ステップ 3 で作成した S3 バケットを選択します。

5.    [Permissions (権限)] を選択してから、[Bucket Policy (バケットポリシー)] を選択します。

6.    次のサンプルバケットポリシーをコピーして貼り付け、[Save (保存)] を選択します。 

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AWSConfigBucketPermissionsCheck",
      "Effect": "Allow",
      "Principal": {
        "Service": [
         "config.amazonaws.com"
        ]
      },
      "Action": "s3:GetBucketAcl",
      "Resource": "arn:aws:s3:::targetBucketName"
    },
    {
      "Sid": "AWSConfigBucketExistenceCheck",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "config.amazonaws.com"
        ]
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::targetBucketName"
    },
    {
      "Sid": " AWSConfigBucketDelivery",
      "Effect": "Allow",
      "Principal": {
        "Service": [
         "config.amazonaws.com"    
        ]
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::targetBucketName/[optional] prefix/AWSLogs/sourceAccountID-WithoutHyphens/Config/*",
      "Condition": { 
        "StringEquals": { 
          "s3:x-amz-acl": "bucket-owner-full-control" 
        }
      }
    }
  ]
}  

SNS トピックを作成する

1.    AWS Config サービスと同じリージョンで Amazon SNS コンソールを開き、[Topics (トピック)] を選択します。

2.    [Create topic (トピックの作成)] を選択します。

3.    [Name (名前)] に SNS トピックの名前を入力し、[Create topic (トピックの作成)] を選択します。

4.    [Create subscription (サブスクリプションの作成)] を選択します。

5.    [Protocol (プロトコル)] で、[Email (E メール)] を選択します。

6.    [Endpoint (エンドポイント)] で、この SNS トピックに関連付けるメールアドレスを入力し、[Create subscription (サブスクリプションの作成)] を選択します。

7.    E メールでサブスクリプションを確定し、[Confirm subscription (サブスクリプションの確定)] を選択します。

8.    サブスクリプションが確定されましたというメッセージが表示されます。

IAM ロールを作成する

1.    AWS Config サービスと同じリージョンで IAM コンソールを開きます。

2.    [Roles (ロール)] を選択し、[Create role (ロールの作成)] を選択します。

3.    [Select type of trusted entity (信頼できるエンティティタイプの選択)] で、[AWS service (AWS のサービス)] を選択します。

4.    [Lambda] で、[Config (構成)] を選択します。

5.    [Select your use case (ユースケースの選択)] で、[Config - Customizable (構成: カスタマイズ可能)] を選択し、[Next: Permissions (次: 権限)] を選択します。

6.    [Next: Tags (次: タグ)]、それに続いて [Next: Review (次: レビュー)] を選択します。

7.    [Role name (ロール名)] に名前を入力し、[Create role (ロールの作成)] を選択します。

8.    ステップ 7 で作成したロールを選択し、[Add inline policy (インラインポリシーの追加)] を選択して、[JSON] タブを選択します。

9.    次のサンプルポリシーをコピーして貼り付けます。

{
	  "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"
	    }
	  ]
	}

配信チャネルを作成する

1.    お気に入りのテキストエディタを使用して、次のサンプルテンプレートをコピーして貼り付け、JSON ファイルとして保存します。

重要: 開始する前に、AWS CLI がインストールおよび設定されていることを確認してください。

注: ユースケースに合わせて、deliveryFrequency の値を変更できます。 

{
	  "name": "default",
	  "s3BucketName": "targetBucketName",
	  "snsTopicARN": "arn:aws:sns:region:account_number:targetTopicName",
	  "configSnapshotDeliveryProperties": {
	    "deliveryFrequency": "Twelve_Hours"
	  }
	}

2.    以下の AWS CLI コマンドを実行します。

$ aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json

3.    次の AWS CLI コマンドを実行して、配信チャネルが作成されたことを確認します。

$ aws configservice describe-delivery-channels

構成レコーダーを開始する

1.    AWS Config コンソールを開きます。

2.    ナビゲーションペインで、[Settings (設定)] を選択します。

3.    [Recording is off (記録オフ)] で、[Turn on (オンにする)] を選択し、[Continue (続行)] を選択します。

– または –

以下の AWS CLI コマンドを実行します。

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

詳細については、設定レコーダーの管理および AWS Config ルールの管理を参照してください。