AWS Config 配信チャネルを再作成する方法を教えてください。

所要時間3分
0

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 バケットを作成する

次の手順を実行します。

  1. お使いの AWS 設定サービスと同じ AWS リージョンで Amazon S3 コンソールを開きます。
  2. ナビゲーションペインで、[バケットを作成] を選択します。
  3. [バケット名] に S3 バケットの名前を入力し、[バケットを作成] を選択します。
  4. S3 バケットで、先ほど作成した S3 バケットを選択します。
  5. [アクセス許可] を選択し、次に [バケットポリシー] を選択します。
  6. 次のバケットポリシーの例を入力したら、[保存] を選択します。
    {
     "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 トピックを作成する

次の手順を実行します。

  1. AWS Config サービスと同じリージョンで Amazon SNS コンソールを開きます。
  2. ナビゲーションペインで [トピック] を選択してから、[トピックの作成] を選択します。
  3. [名前] に、SNS トピックの名前を入力します。次に [トピックの作成] を選択します。
  4. [サブスクリプションの作成] を選択します。
  5. [プロトコル] には、[E メール] を選択します。
  6. [エンドポイント] に、この SNS トピックに関連付けるメールアドレスを入力したら、[サブスクリプションの作成] を選択します。
  7. サブスクリプション確認メールをチェックし、[サブスクリプションを確認] を選択します。

サブスクリプションを確認すると、**サブスクリプションが確認されました!**というメッセージが表示されます。

注: SNS トピックを使用するには、必要なアクセス許可があることを確認してください。

IAM ロールを作成する

次の手順を実行します。

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

  2. [ロール] を選択し、**[ロールの作成]**を選択します。

  3. [信頼されたエンティティの種類を選択] から、[AWS サービス] を選択します。

  4. [他の AWS サービス用ユースケース] で、[設定] を選択します。

  5. [ユースケースを選択][設定 - カスタマイズ可能] を選択したら、[次へ: アクセス許可] を選択します。

  6. [次へ] を選択し、[ロール名] を入力したら、[ロールの作成] を選択します。

  7. 作成したロールを選択し、[インラインポリシーの作成] を選択し、次に [JSON] タブを選択します。

  8. 次のポリシー例を参照してください。

    {
      "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"
        }
      ]
    }
  9. [ポリシー名] に名前を入力し、[ポリシーの作成] を選択します。

KMS キーを作成する

AWS Config によって Amazon S3 バケットに配信されるオブジェクトには、AWS Key Management Service (AWS KMS) ベースの暗号化を使用するのがベストプラクティスです。AWS Config サービスと同じリージョンに KMS キーを作成します。

次の手順を実行します。

  1. AWS KMS コンソールを開きます。
  2. ナビゲーションペインで [カスタマーマネージドキー] を選択し、次に [キーを作成] を選択します。
  3. [キーの種類][対称] を選択し、対称暗号化 KMS キーを作成します。
  4. [キーの使用法][暗号化と復号化] オプションを選択したら、[次へ] を選択します。
  5. KMS キーのエイリアスを入力します。[次へ] を選択します。
    : エイリアス名の先頭に aws/ は使用できません。
  6. KMS キーを管理できる IAM ユーザーとロールを選択します。[次へ] を選択します。
  7. 暗号化操作でキーを使用できる IAM ユーザーとロールを選択します。[次へ] を選択します。
  8. [完了] を選択して KMS キーを作成します。
  9. ナビゲーションペインで、[カスタマーマネージドキー] を選択します。次に、[カスタマーマネージドキー] で、作成したキーを選択します。
  10. [キーポリシー] タブで、[ポリシービューに切り替え] を選択します。次に、[編集] を選択します。
  11. 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"
        }
      }
    }
  ]
}

配信チャネルを作成する

次の手順を実行します。

  1. 次のテンプレート例をテキストエディタに入力し、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 値を省略します。

  2. AWS CLI コマンド put-delivery-channel を実行します。

    $ aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json
  3. 配信チャネルが作成されたことを確認するには、AWS CLI コマンド describe-delivery-channels を実行します。

    $ aws configservice describe-delivery-channels

設定レコーダーを起動する

次の手順を実行します。

  1. AWS Config コンソールを開きます。
  2. ナビゲーションペインで [設定] を選択します。
  3. [記録が無効] で、[有効にする] を選択した後、[続行] を選択します。または、AWS CLI start-configuration-recorder コマンドを実行します。
    $ aws configservice start-configuration-recorder --configuration-recorder-name configRecorderName

詳細については、「設定レコーダーの管理」と「AWS Config ルールでリソースを評価する」を参照してください。

関連情報

コンソールで AWS Config を設定する

AWS Config コンソールのエラーメッセージをトラブルシューティングする方法を教えてください

AWS公式
AWS公式更新しました 7ヶ月前
コメントはありません