在執行期修改目的地成員資格 - Amazon CloudWatch Logs

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

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

您可能遇到以下情況:您需要從擁有的目的地中新增或移除某些使用者的成員資格。您可以在目的地使用 put-destination-policy 命令並指定新的存取政策。在下列範例中,之前新增帳戶 111111111111 會停止傳送任何更多資料,且帳戶 222222222222 會啟用。

  1. 擷取目前與目的地相關聯的政策,testDestination並記下 AccessPolicy

    aws logs describe-destinations \ --destination-name-prefix "testDestination" { "Destinations": [ { "DestinationName": "testDestination", "RoleArn": "arn:aws:iam::999999999999:role/CWLtoKinesisRole", "DestinationArn": "arn:aws:logs:region:999999999999:destination:testDestination", "TargetArn": "arn:aws:kinesis:region:999999999999:stream/RecipientStream", "AccessPolicy": "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Sid\": \"\", \"Effect\": \"Allow\", \"Principal\": {\"AWS\": \"111111111111\"}, \"Action\": \"logs:PutSubscriptionFilter\", \"Resource\": \"arn:aws:logs:region:999999999999:destination:testDestination\"}] }" } ] }
  2. 更新政策,以反映帳戶 111111111111 已停用,且帳戶 222222222222 已啟用。將此政策放入 ~/NewAccessPolicy.json 檔案中:

    { "Version" : "2012-10-17", "Statement" : [ { "Sid" : "", "Effect" : "Allow", "Principal" : { "AWS" : "222222222222" }, "Action" : ["logs:PutSubscriptionFilter","logs:PutAccountPolicy"], "Resource" : "arn:aws:logs:region:999999999999:destination:testDestination" } ] }
  3. 呼叫 PutDestinationPolicyNewAccessPolicy.json 檔案中定義的政策與目的地建立關聯:

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

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