Amazon CloudWatch Logs
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

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

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

  1. 提取当前与目标 testDestination 关联的策略并记下 AccessPolicy

    Copy
    aws logs describe-destinations \ --destination-name-prefix "testDestination" { "Destinations": [ { "DestinationName": "testDestination", "RoleArn": "arn:aws:iam::123456789012:role/CWLtoKinesisRole", "DestinationArn": "arn:aws:logs:us-east-1:999999999999:destination:testDestination", "TargetArn": "arn:aws:kinesis:us-east-1:999999999999:stream/RecipientStream", "AccessPolicy": "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Sid\": \"\", \"Effect\": \"Allow\", \"Principal\": {\"AWS\": \"234567890123\"}, \"Action\": \"logs:PutSubscriptionFilter\", \"Resource\": \"arn:aws:logs:us-east-1:123456789012:destination:testDestination\"}] }" } ] }
  2. 更新该策略以反映已阻止账户 111111111111,并且已启用账户 222222222222。将此策略放入 ~/NewAccessPolicy.json 文件:

    Copy
    { "Version" : "2012-10-17", "Statement" : [ { "Sid" : "", "Effect" : "Allow", "Principal" : { "AWS" : "222222222222" }, "Action" : "logs:PutSubscriptionFilter", "Resource" : "arn:aws:logs:us-east-1:123456789012:destination:testDestination" } ] }
  3. 调用 PutDestinationPolicy 以将 NewAccessPolicy.json 文件中定义的策略与目标关联:

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

    这将最终禁用账户 ID 111111111111 中的日志事件。一旦账户 222222222222 的所有者使用 PutSubscriptionFilter 创建订阅筛选器,账户 ID 222222222222 中的日志事件就会立即开始流向目标。