2016-04-07 72 views
0

我如何找到誰創建了CloudFormation堆棧?如何查找誰創建了CloudFormation堆棧?

我正在使用boto3來列出狀態爲COMPLETE的堆棧以及創建堆棧的用戶。我可以獲取堆棧的所有屬性,但我無法在CloudFormation儀表板或boto3 CF API中找到用戶信息。任何想法如何獲得創建堆棧的用戶的IAM用戶名?

感謝

片段我的代碼:

import boto3 

cf = boto3.client('cloudformation', region_name='us-east-1') 
stacks = cf.list_stacks(StackStatusFilter=['CREATE_COMPLETE'])['StackSummaries'] 
names = [stack['StackName'] for stack in stacks] 

for name in names: 
    resources = cf.describe_stack_resources(StackName=name)['StackResources'] 
    ... 
    ... 

回答

2

您可以通過CloudTrail獲取這些信息。特別是,在CloudTrail客戶端上撥打lookup_events()

events = cloudtrail_client.lookup_events(LookupAttributes=[{'AttributeKey':'EventName', 'AttributeValue':'CreateStack'}]) 
for event in events['Events']: 
    event_detail = json.loads(event['CloudTrailEvent']) 
    if event_detail['requestParameters']['stackName'] == myStackName: 
     creator = event['Username'] 
+0

我想過使用CloudTrail。但部分堆棧已超過2年,我們的CloudTrail生命週期策略爲6個月。不管怎麼說,還是要謝謝你。 – helloV

+1

不幸的是,我不認爲IAM創建者是通過任何地方的CloudFormation API公開的。可能是一個很好的策略,將其作爲模板參數傳遞,但這對現有堆棧無效。抱歉。 – ataylor

+0

但是,如果我在CloudFormation中啓動實例,則實例的RunInstances()具有IAM用戶的屬性。 AWS內部必須根據傳遞的憑證獲取用戶名。 – helloV

相關問題