如何重新建立 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 Command Line Interface (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. 協定中,選擇電子郵件
  6. 針對端點,輸入您要與此 SNS 主題建立關聯的電子郵件地址,然後選擇建立訂閱
  7. 檢查您的訂閱確認電子郵件,然後選擇確認訂閱

確認訂閱後,您會收到訊息 訂閱已確認!

**注意:**若要使用 SNS 主題,請確定您擁有必要的權限

建立 IAM 角色

請完成下列步驟:

  1. 開啟 IAM 主控台

  2. 選擇角色,然後選擇建立角色

  3. 選取受信任實體的類型中,選擇 AWS 服務

  4. 其他 AWS 服務的使用案例下,選擇設定

  5. 選取您的使用案例中選擇 Config - 可自訂,然後選擇下一步: 授權

  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 (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. 執行 put-delivery-channel ASW CLI 命令:

    $ aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json
  3. 若要確認傳遞通道是否已建立,請執行 describe-delivery-channels AWS CLI 命令:

    $ aws configservice describe-delivery-channels

啟動組態記錄器

請完成下列步驟:

  1. 開啟 AWS Config 主控台
  2. 在導覽窗格中,選擇設定
  3. 記錄關閉中,選擇開啟,然後選擇繼續。或者,執行 start-configuration-recorder AWS CLI 命令:
    $ aws configservice start-configuration-recorder --configuration-recorder-name configRecorderName

如需詳細資訊,請參閱管理組態記錄器使用 AWS Config 規則評估資源

相關資訊

使用主控台設定 AWS 組態

如何對 AWS Config 主控台錯誤訊息進行疑難排解?

AWS 官方
AWS 官方已更新 1 個月前