2016-04-07 13 views
0

Wie finde ich heraus, wer einen CloudFormation-Stack erstellt hat?Wie finde ich heraus, wer einen CloudFormation-Stack erstellt hat?

Ich verwende boto3, um die Stapel aufzulisten, deren Status COMPLETE zusammen mit dem Benutzer ist, der den Stapel erstellt hat. Ich kann alle Attribute des Stapels abrufen, aber ich kann die Benutzerinformationen nicht im CloudFormation-Dashboard oder in den boto3-CF-APIs finden. Gibt es eine Idee, wie Sie den IAM-Benutzernamen des Benutzers erhalten, der den Stack erstellt hat?

Dank

Snippet meiner Code:

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'] 
    ... 
    ... 

Antwort

2

Sie diese Informationen durch CloudTrail erhalten können. Rufen Sie insbesondere lookup_events() auf dem CloudTrail-Client:

+0

Ich dachte über die Verwendung von CloudTrail. Einige der Stacks sind jedoch älter als 2 Jahre und unsere CloudTrail-Lebenszyklusrichtlinie beträgt 6 Monate. Danke trotzdem. – helloV

+1

Leider glaube ich nicht, dass der IAM-Ersteller über die CloudFormation-APIs überall verfügbar gemacht wird. Es könnte eine gute Richtlinie sein, sie als Template-Parameter zu übergeben, aber das wird bei bestehenden Stacks nicht helfen. Es tut uns leid. – ataylor

+0

Wenn ich jedoch eine Instanz in CloudFormation starte, hat RunInstances() der Instanz ein Attribut für den IAM-Benutzer. Intern muss AWS den Benutzernamen basierend auf den übergebenen Anmeldeinformationen abrufen. – helloV