在运行时修改目标成员资格 - Amazon CloudWatch 日志

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在运行时修改目标成员资格

您可能会遇到必须在您拥有的目标中添加或删除日志发送者的情况。您可通过新访问策略对您的目标使用 PutDestinationPolicyPutAccountPolicy 操作。在以下示例中,将阻止之前添加的账户 111111111111 再发送任何日志数据,并将启用账户 333333333333

  1. 提取当前与目标 testDestination 关联的策略并记下 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 中的日志事件就会立即开始流向目标。