Protokollieren von AWS CloudFormation-API-Aufrufen mit AWS CloudTrail - AWS CloudFormation

Protokollieren von AWS CloudFormation-API-Aufrufen mit AWS CloudTrail

AWS CloudFormation ist in AWS CloudTrail integriert. Dies ist ein Service, der die Aktionen eines Benutzers, einer Rolle oder eines AWS-Services in CloudFormation aufzeichnet. CloudTrail erfasst alle API-Aufrufe für CloudFormation als Ereignisse, einschließlich Aufrufen von der CloudFormation-Konsole und von Code-Aufrufen an die CloudFormation-APIs. Wenn Sie einen Trail erstellen, können Sie die kontinuierliche Bereitstellung von CloudTrail-Ereignissen für einen Amazon S3-Bucket aktivieren, einschließlich Ereignissen für CloudFormation. Auch wenn Sie keinen Trail konfigurieren, können Sie die neuesten Ereignisse in der CloudTrail-Konsole in Event history (Ereignisverlauf) anzeigen. Anhand der von CloudTrail erfassten Informationen können Sie feststellen, welche Anforderung an CloudFormation gesendet wurde, die IP-Adresse, von der die Anforderung gesendet wurde, den Absender und den Zeitpunkt der Anforderung sowie weitere Details.

Weitere Informationen zu CloudTrail finden Sie im AWS CloudTrail User Guide.

CloudFormation-Informationen in CloudTrail

CloudTrail wird beim Erstellen Ihres AWS-Kontos für Sie aktiviert. Die in CloudFormation auftretenden Aktivitäten werden als CloudTrail-Ereignis zusammen mit anderen AWS-Serviceereignissen in Event history (Ereignisverlauf) aufgezeichnet. Sie können die neusten Ereignisse in Ihrem AWS-Konto anzeigen, suchen und herunterladen. Weitere Informationen finden Sie unter Anzeigen von Ereignissen mit dem CloudTrail-API-Ereignisverlauf.

Zur kontinuierlichen Aufzeichnung von Ereignissen in Ihrem AWS-Konto, einschließlich Ereignissen für CloudFormation, erstellen Sie einen Trail. Ein Trail ermöglicht CloudTrail die Übermittlung von Protokolldateien an einen Amazon S3-Bucket. Wenn Sie einen Pfad in der Konsole anlegen, gilt dieser standardmäßig für alle Regionen. Der Trail protokolliert Ereignisse aus allen Regionen in der AWS-Partition und stellt die Protokolldateien in dem Amazon S3-Bucket bereit, den Sie angeben. Darüber hinaus können Sie andere AWS-Services konfigurieren, um die in den CloudTrail-Protokollen erfassten Ereignisdaten weiter zu analysieren und entsprechend zu agieren. Weitere Informationen finden Sie unter:

Alle CloudFormation-Aktionen werden von CloudTrail protokolliert und in der AWS CloudFormation API Reference dokumentiert. Zum Beispiel werden durch Aufrufe der CreateStack-, DeleteStack- und ListStacks-Abschnitte Einträge in den CloudTrail-Protokolldateien generiert.

Jedes Event oder jeder Protokolleintrag enthält Informationen über den Ersteller der Anfrage. Anhand der Identitätsinformationen zur Benutzeridentität können Sie Folgendes bestimmen:

  • Ob die Anforderung mit Root- oder IAM-Benutzeranmeldeinformationen ausgeführt wurde.

  • Ob die Anforderung mit temporären Sicherheitsanmeldeinformationen für eine Rolle oder einen föderierten Benutzer ausgeführt wurde.

  • Ob die Anforderung von einem anderen AWS-Service getätigt wurde.

Weitere Informationen finden Sie unter CloudTrail-Element userIdentity.

Grundlagen zu CloudFormation-Protokolldateieinträgen

Ein Trail ist eine Konfiguration, durch die Ereignisse an den von Ihnen angegebenen Amazon S3-Bucket übermittelt werden. CloudTrail-Protokolldateien können einen oder mehrere Einträge enthalten. Ein Ereignis stellt eine einzelne Anfrage aus einer beliebigen Quelle dar und enthält unter anderem Informationen über die angeforderte Operation, das Datum und die Uhrzeit der Operation sowie über die Anfrageparameter. CloudTrail-Protokolldateien stellen keine geordnete Stack-Verfolgung der öffentlichen API-Aufrufe dar und werden daher nicht in einer bestimmten Reihenfolge angezeigt.

Das folgende Beispiel zeigt einen CloudTrail-Protokolleintrag, der die CreateStack-Operation demonstriert: Die Aktion wurde von dem IAM-Benutzer Alice ausgeführt.

Anmerkung

Nur die Schlüsselnamen der Eingabeparameter werden protokolliert; es werden keine Parameterwerte protokolliert.

{ "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "AIDAABCDEFGHIJKLNMOPQ", "arn": "arn:aws:iam::012345678910:user/Alice", "accountId": "012345678910", "accessKeyId": "AKIDEXAMPLE", "userName": "Alice" }, "eventTime": "2014-03-24T21:02:43Z", "eventSource": "cloudformation.amazonaws.com", "eventName": "CreateStack", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-cli/1.2.11 Python/2.7.4 Linux/2.6.18-164.el5", "requestParameters": { "templateURL": "DOC-EXAMPLE-BUCKET1", "tags": [ { "key": "test", "value": "tag" } ], "stackName": "my-test-stack", "disableRollback": true, "parameters": [ { "parameterKey": "password" }, { "parameterKey": "securitygroup" } ] }, "responseElements": { "stackId": "arn:aws:cloudformation:us-east-1:012345678910:stack/my-test-stack/a38e6a60-b397-11e3-b0fc-08002755629e" }, "requestID": "9f960720-b397-11e3-bb75-a5b75389b02d", "eventID": "9bf6cfb8-83e1-4589-9a70-b971e727099b" }

Das folgende Beispiel zeigt, dass Alice die UpdateStack-Aktion auf dem my-test-stack-Stack aufgerufen hat:

{ "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "AIDAABCDEFGHIJKLNMOPQ", "arn": "arn:aws:iam::012345678910:user/Alice", "accountId": "012345678910", "accessKeyId": "AKIDEXAMPLE", "userName": "Alice" }, "eventTime": "2014-03-24T21:04:29Z", "eventSource": "cloudformation.amazonaws.com", "eventName": "UpdateStack", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-cli/1.2.11 Python/2.7.4 Linux/2.6.18-164.el5", "requestParameters": { "templateURL": "DOC-EXAMPLE-BUCKET1", "parameters": [ { "parameterKey": "password" }, { "parameterKey": "securitygroup" } ], "stackName": "my-test-stack" }, "responseElements": { "stackId": "arn:aws:cloudformation:us-east-1:012345678910:stack/my-test-stack/a38e6a60-b397-11e3-b0fc-08002755629e" }, "requestID": "def0bf5a-b397-11e3-bb75-a5b75389b02d", "eventID": "637707ce-e4a3-4af1-8edc-16e37e851b17" }

Das folgende Beispiel zeigt, dass Alice die ListStacks-Aktion aufgerufen hat.

{ "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "AIDAABCDEFGHIJKLNMOPQ", "arn": "arn:aws:iam::012345678910:user/Alice", "accountId": "012345678910", "accessKeyId": "AKIDEXAMPLE", "userName": "Alice" }, "eventTime": "2014-03-24T21:03:16Z", "eventSource": "cloudformation.amazonaws.com", "eventName": "ListStacks", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-cli/1.2.11 Python/2.7.4 Linux/2.6.18-164.el5", "requestParameters": null, "responseElements": null, "requestID": "b7d351d7-b397-11e3-bb75-a5b75389b02d", "eventID": "918206d0-7281-4629-b778-b91eb0d83ce5" }

Das folgende Beispiel zeigt, dass Alice die DescribeStacks-Aktion auf dem my-test-stack-Stack aufgerufen hat.

{ "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "AIDAABCDEFGHIJKLNMOPQ", "arn": "arn:aws:iam::012345678910:user/Alice", "accountId": "012345678910", "accessKeyId": "AKIDEXAMPLE", "userName": "Alice" }, "eventTime": "2014-03-24T21:06:15Z", "eventSource": "cloudformation.amazonaws.com", "eventName": "DescribeStacks", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-cli/1.2.11 Python/2.7.4 Linux/2.6.18-164.el5", "requestParameters": { "stackName": "my-test-stack" }, "responseElements": null, "requestID": "224f2586-b398-11e3-bb75-a5b75389b02d", "eventID": "9e5b2fc9-1ba8-409b-9c13-587c2ea940e2" }

Das folgende Beispiel zeigt, dass Alice die DeleteStack-Aktion auf dem my-test-stack-Stack aufgerufen hat.

{ "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "AIDAABCDEFGHIJKLNMOPQ", "arn": "arn:aws:iam::012345678910:user/Alice", "accountId": "012345678910", "accessKeyId": "AKIDEXAMPLE", "userName": "Alice" }, "eventTime": "2014-03-24T21:07:15Z", "eventSource": "cloudformation.amazonaws.com", "eventName": "DeleteStack", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-cli/1.2.11 Python/2.7.4 Linux/2.6.18-164.el5", "requestParameters": { "stackName": "my-test-stack" }, "responseElements": null, "requestID": "42dae739-b398-11e3-bb75-a5b75389b02d", "eventID": "4965eb38-5705-4942-bb7f-20ebe79aa9aa" }