本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 1:更新訂閱篩選條件
注意
只有跨帳戶訂閱由 啟用從 AWS 服務記錄 所列服務建立的日誌才需要此步驟。如果您不使用這些日誌群組之一建立的日誌,則可以跳至 步驟 2:更新現有的目的地存取政策。
在某些情況下,您必須更新所有傳送日誌至目的地帳戶的寄件者帳戶中的訂閱篩選條件。此更新新增 IAM 角色,該角色 CloudWatch 可假設並驗證寄件者帳戶是否具有將記錄傳送至收件者帳戶的權限。
針對您想要更新的每個寄件者帳戶,按照本節中的步驟進行,以將組織 ID 用於跨帳戶訂閱許可。
在本節的範例中,111111111111
和 222222222222
兩個帳戶已經建立訂閱篩選條件,以將日誌傳送至帳戶 999999999999
。現有的訂閱篩選條件值如下:
## Existing Subscription Filter parameter values \ --log-group-name "my-log-group-name" \ --filter-name "RecipientStream" \ --filter-pattern "{$.userIdentity.type = Root}" \ --destination-arn "arn:aws:logs:region:999999999999:destination:testDestination"
如果需要尋找目前的訂閱篩選條件參數值,請輸入下列命令。
aws logs describe-subscription-filters \ --log-group-name "
my-log-group-name
"
更新訂閱篩選條件以開始將組織 ID 用於跨帳戶日誌許可
在檔案
~/TrustPolicyForCWL.json
中建立下列信任政策。使用文字編輯器來建立此政策檔案,請勿使用 IAM 主控台。{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } }
建立使用此政策的 IAM 角色。記下命令傳回的
Arn
值的Arn
值,之後在此程序中會用到。在此範例中,我們使用CWLtoSubscriptionFilterRole
作為要建立的角色的名稱。aws iam create-role \ --role-name CWLtoSubscriptionFilterRole \ --assume-role-policy-document file://~/TrustPolicyForCWL.json
建立權限原則,以定義記 CloudWatch 錄檔可在您的帳戶上執行的動作。
首先,使用文字編輯器在名為
/PermissionsForCWLSubscriptionFilter.json
的檔案中建立下列許可政策。{ "Statement": [ { "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:region:111111111111:log-group:LogGroupOnWhichSubscriptionFilterIsCreated:*" } ] }
輸入下列命令,將您剛建立的許可政策與您在步驟 2 中建立的角色相關聯。
aws iam put-role-policy --role-name CWLtoSubscriptionFilterRole --policy-name Permissions-Policy-For-CWL-Subscription-filter --policy-document file://~/PermissionsForCWLSubscriptionFilter.json
輸入下列命令以更新訂閱篩選條件。
aws logs put-subscription-filter \ --log-group-name "my-log-group-name" \ --filter-name "RecipientStream" \ --filter-pattern "{$.userIdentity.type = Root}" \ --destination-arn "arn:aws:logs:region:999999999999:destination:testDestination" \ --role-arn "arn:aws:iam::111111111111:role/CWLtoSubscriptionFilterRole"