在執行時間修改目的地成員資格 - Amazon CloudWatch 日誌

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在執行時間修改目的地成員資格

在某些情況下,您可能需要在您擁有的目的地中新增或移除日誌寄件者。您可以在目的地上使用PutDestinationPolicyPutAccountPolicy動作搭配新的存取原則。在下列範例中,之前新增的帳戶 111111111111 會停止傳送更多日誌資料,且帳戶 333333333333 會啟用。

  1. 擷取目前與目的地 testD estination 相關聯的原則,並記下 AccessPolicy

    aws logs describe-destinations \ --destination-name-prefix "testFirehoseDestination"

    返回的數據可能如下所示。

    { "destinations": [ { "destinationName": "testFirehoseDestination", "targetArn": "arn:aws:firehose:us-east-1:222222222222:deliverystream/my-delivery-stream", "roleArn": "arn:aws:iam:: 222222222222:role/CWLtoKinesisFirehoseRole", "accessPolicy": "{\n \"Version\" : \"2012-10-17\",\n \"Statement\" : [\n {\n \"Sid\" : \"\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : \"111111111111 \"\n },\n \"Action\" : \"logs:PutSubscriptionFilter\",\n \"Resource\" : \"arn:aws:logs:us-east-1:222222222222:destination:testFirehoseDestination\"\n }\n ]\n}\n\n", "arn": "arn:aws:logs:us-east-1: 222222222222:destination:testFirehoseDestination", "creationTime": 1612256124430 } ] }
  2. 更新政策,以反映帳戶 111111111111 已停用,且帳戶 333333333333 已啟用。將此策略放在〜/NewAccessPolicy.json 文件中:

    { "Version" : "2012-10-17", "Statement" : [ { "Sid" : "", "Effect" : "Allow", "Principal" : { "AWS" : "333333333333 " }, "Action" : ["logs:PutSubscriptionFilter","logs:PutAccountPolicy"], "Resource" : "arn:aws:logs:us-east-1:222222222222:destination:testFirehoseDestination" } ] }
  3. 使用下列命令,將 NewAccessPolicy.json 檔案中定義的原則與目的地產生關聯:

    aws logs put-destination-policy \ --destination-name "testFirehoseDestination" \ --access-policy file://~/NewAccessPolicy.json

    這最終會停止來自帳戶 ID 111111111111 的日誌事件。在帳戶 333333333333 的擁有者建立訂閱篩選條件後,來自帳戶 ID 333333333333 的日誌事件會立刻開始流向目的地。