如何重新建立 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 身分和存取管理 (IAM) 角色,以及要記錄的資源類型。

如果您使用 AWS Command Line Interface (AWS CLI) 命令 delete-delivery-channel 刪除 AWS Config 傳遞通道,則組態記錄器會關閉。嘗試再次開啟組態記錄器會傳回錯誤「AWS Config 無法開始記錄,因為找不到傳遞通道。」

注意: 您無法使用 AWS Config 主控台重新建立傳遞通道。

解決方法

依照下列指示手動重新建立 AWS Config 傳遞通道,並開啟組態記錄器。

注意: 如果您沒有刪除與已刪除 AWS Config 傳遞通道關聯的 Amazon S3 儲存貯體、S3 主題和 IAM 角色,則可以跳過這些步驟。

建立 Amazon S3 儲存貯體

1.    在與 AWS Config 服務相同的區域中開啟 Amazon S3 主控台,然後選擇建立儲存貯體

2.    在儲存貯體名稱中,輸入 S3 儲存貯體的名稱,然後選擇下一步

3.    選擇下一步下一步,然後選取建立儲存貯體

4.    在 S3 儲存貯體中,選擇您剛在步驟 3 中建立的 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.    檢查您的訂閱確認電子郵件,然後選擇確認訂閱

8.    您收到**訂閱已確認!**訊息。

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

建立 IAM 角色

1.    開啟 IAM 主控台

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

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

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

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

6.    選擇下一步: 標籤,然後選擇下一步: 檢閱

7.    在角色名稱中,輸入名稱,然後選擇建立角色

8.    選擇您在步驟 7 中建立的角色,選擇新增內嵌政策,然後選擇 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"
    }
  ]
}

建立 KMS 金鑰

最佳實務是在 AWS Config 交付給 Amazon S3 儲存貯體的物件上使用以 AWS Key Management Service (KMS) 為基礎的加密。在與 AWS Config 服務相同的區域中建立 KMS 金鑰。確定您擁有 KMS 金鑰所需的權限

如果您選擇不加密物件,請跳過這些步驟,繼續前往建立傳遞通道部分。

1.    開啟 AWS KMS 主控台

2.    從導覽窗格中選擇客戶管理的金鑰

3.    選擇建立金鑰

4.    為金鑰類型選擇對稱以建立對稱加密 KMS 金鑰。如需關於非對稱 KMS 金鑰的詳細資訊,請參閱建立非對稱 KMS 金鑰 (主控台)

5.    對於金鑰使用,預設會選取加密和解密選項。確認此選項,然後選擇下一步

6.    輸入 KMS 金鑰的別名。然後,選擇下一步注意: 您的別名不能以 aws/ 開頭。

7.    選取可管理 KMS 金鑰的 IAM 使用者和角色。然後,選擇下一步

8.    選取可在密碼編譯作業中使用金鑰的 IAM 使用者和角色。然後,選擇下一步。

9.    選擇完成以建立 KMS 金鑰。

10.    從導覽窗格中選擇客戶管理的金鑰。然後,在客戶管理的金鑰下,選取您剛建立的金鑰

11.    在金鑰政策標籤中,選擇切換至政策檢視。然後,選擇編輯

12.    如果您對 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 檔案。您可以變更 deliveryFrequency 值以符合您的使用情況。如果您選擇不啟用加密,請在 JSON 檔案中省略 S3KMSkeyARN 值。

**重要:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確認您使用的是最新的 AWS CLI 版本

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

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.    在瀏覽窗格中,選擇設定

3.    在記錄關閉中,選擇開啟,然後選擇繼續

-或-

執行下列 AWS CLI 命令:

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

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


相關資訊

使用主控台設定 AWS 組態

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

AWS 官方
AWS 官方已更新 2 年前