AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Wie überwache ich IAM-Ereignisse und richte Ereignisbenachrichtigungen mit AWS CloudFormation ein?
Ich möchte die Aktivitäten von AWS Identity and Access Management (IAM) mit AWS CloudFormation überwachen. Ich möchte beispielsweise eine E-Mail-Benachrichtigung erhalten, wenn ein bestimmtes IAM-Ereignis eintritt.
Lösung
Eine CloudFormation-Vorlage erstellen
Du musst die Vorlage in der AWS-Region USA Ost (Nord-Virginia) – us-east-1 bereitstellen. Du kannst die Ressource AWS::SNS::Topic ändern, um E-Mail-Adressen hinzuzufügen. Du kannst auch die Ressource AWS::Events::Rule bearbeiten, um API-Aufrufe hinzuzufügen oder zu entfernen.
Die folgende Beispielvorlage enthält die Ressource AWS::Events::Rule, die die Eigenschaft EventPattern enthält. Verwende die EventPattern-Eigenschaft, um zu definieren, welche Ereignisse die Ereignisquellen und API-Aufrufe hinzufügen oder einschränken können. Jeder API-Aufruf hat unterschiedliche Parameter und Informationen in den Ereignissen. Die Vorlage enthält nur zwei Regeln, die verschiedene API-Aufrufe zusammenfassen. Du kannst jedoch mehrere Regeln verwenden, um E-Mails oder Benachrichtigungen für verschiedene API-Aufrufe zu erstellen. Du kannst auch die API-Aufrufe definieren, die benutzerdefinierte E-Mails und Informationen für jeden Aufruf überwachen und definieren.
Hinweis: Ersetze in der folgenden JSON- oder YAML-Vorlage die Beispielwerte durch die Werte für deine Umgebung.
JSON:
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Monitor IAM events with EventBridge rules with AWS CloudFormation. This Stack must be deployed in 'us-east-1' (IAM).", "Parameters": { "EmailList": { "Type": "String", "Description": "Email to notify!", "AllowedPattern": "[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z]+", "Default": "mail@example.com" }, "SNSTopicName": { "Type": "String", "Description": "Name for the notification topic.", "AllowedPattern": "[a-zA-Z0-9_-]+", "Default": "iam-monitoring-topic" }, "MonitorStatus": { "Type": "String", "Description": "Enable / Disable monitor.", "AllowedValues": [ "ENABLED", "DISABLED" ], "Default": "ENABLED" } }, "Resources": { "SNSMonitoringTopic": { "Type": "AWS::SNS::Topic", "Properties": { "Subscription": [ { "Endpoint": { "Ref": "EmailList" }, "Protocol": "email" } ], "TopicName": { "Fn::Sub": "${AWS::StackName}-${SNSTopicName}" } } }, "SNSMonitoringTopicTopicPolicy": { "Type": "AWS::SNS::TopicPolicy", "Properties": { "Topics": [ { "Ref": "SNSMonitoringTopic" } ], "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "SnsIAMTopicPolicy", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "sns:Publish" ], "Resource": { "Ref": "SNSMonitoringTopic" } }, { "Sid": "AllowAccessToTopicOwner", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:AddPermission", "sns:RemovePermission", "sns:DeleteTopic", "sns:Subscribe", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Receive" ], "Resource": { "Ref": "SNSMonitoringTopic" }, "Condition": { "StringEquals": { "AWS:SourceOwner": { "Ref": "AWS::AccountId" } } } } ] } } }, "EventRulePolicyMonitor": { "Type": "AWS::Events::Rule", "Properties": { "Name": { "Fn::Sub": "${AWS::StackName}-policy-monitor" }, "Description": "This EventBridge rule will capture IAM API Calls and events related to creation and deletion of policies.\n", "State": { "Ref": "MonitorStatus" }, "EventPattern": { "source": [ "aws.iam" ], "detail-type": [ "AWS API Call via CloudTrail" ], "detail": { "eventSource": [ "iam.amazonaws.com" ], "eventName": [ "CreatePolicy", "DeletePolicy", "PutGroupPolicy", "DeleteGroupPolicy", "PutRolePolicy", "DeleteRolePolicy", "PutUserPolicy", "DeleteUserPolicy", "CreatePolicyVersion", "DeletePolicyVersion", "AttachRolePolicy", "DetachRolePolicy", "AttachUserPolicy", "DetachUserPolicy", "AttachGroupPolicy", "DetachGroupPolicy" ] } }, "Targets": [ { "Arn": { "Ref": "SNSMonitoringTopic" }, "Id": "iam-policy-monitor", "InputTransformer": { "InputPathsMap": { "eventName": "$.detail.eventName", "policyName": "$.detail.requestParameters.policyName", "policyArn": "$.detail.requestParameters.policyArn", "eventTime": "$.detail.eventTime", "userIdentity": "$.detail.userIdentity.arn", "sourceIPAddress": "$.detail.sourceIPAddress" }, "InputTemplate": "\"API Call '<eventName>' was issued on policy '<policyName><policyArn>'. This occurred at '<eventTime>' and was initiated by '<userIdentity>' from IP '<sourceIPAddress>'. Please review the details here: https://console.aws.amazon.com/iam/home?region=us-east-1#/policies/<policyArn>$jsonEditor?section=attached_entities .\"\n" } } ] } }, "EventRulePrincipalsMonitor": { "Type": "AWS::Events::Rule", "Properties": { "Name": { "Fn::Sub": "${AWS::StackName}-principals-monitor" }, "Description": "This EventBridge rule will capture IAM API Calls and events related to creation and deletion of users, groups and roles.", "State": { "Ref": "MonitorStatus" }, "EventPattern": { "source": [ "aws.iam" ], "detail-type": [ "AWS API Call via CloudTrail" ], "detail": { "eventSource": [ "iam.amazonaws.com" ], "eventName": [ "CreateUser", "CreateGroup", "CreateRole", "UpdateUser", "UpdateGroup", "UpdateRole", "DeleteUser", "DeleteGroup", "DeleteRole" ] } }, "Targets": [ { "Arn": { "Ref": "SNSMonitoringTopic" }, "Id": "iam-user-monitor", "InputTransformer": { "InputPathsMap": { "eventName": "$.detail.eventName", "userName": "$.detail.requestParameters.userName", "roleName": "$.detail.requestParameters.roleName", "groupName": "$.detail.requestParameters.groupName", "eventTime": "$.detail.eventTime", "userIdentity": "$.detail.userIdentity.arn", "sourceIPAddress": "$.detail.sourceIPAddress" }, "InputTemplate": "\"API Call '<eventName>' was issued on '<userName><roleName><groupName>'. This occurred at '<eventTime>' and was initiated by '<userIdentity>' from IP '<sourceIPAddress>'. \"\n" } } ] } } } }
YAML:
AWSTemplateFormatVersion: 2010-09-09 Description: > - Monitor IAM events with EventBridge rules with AWS CloudFormation. - This Stack must be deployed in 'us-east-1' (IAM). Parameters: EmailList: Type: String Description: "Email to notify!" AllowedPattern: '[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+' Default: "mail@example.com" SNSTopicName: Type: String Description: "Name for the notification topic." AllowedPattern: '[a-zA-Z0-9_-]+' Default: "iam-monitoring-topic" MonitorStatus: Type: String Description: "Enable / Disable monitor." AllowedValues: - ENABLED - DISABLED Default: ENABLED Resources: SNSMonitoringTopic: Type: AWS::SNS::Topic Properties: Subscription: - Endpoint: !Ref EmailList Protocol: email TopicName: !Sub ${AWS::StackName}-${SNSTopicName} SNSMonitoringTopicTopicPolicy: Type: AWS::SNS::TopicPolicy Properties: Topics: - !Ref SNSMonitoringTopic PolicyDocument: Version: '2012-10-17' Statement: - Sid: SnsIAMTopicPolicy Effect: Allow Principal: Service: events.amazonaws.com Action: [ 'sns:Publish' ] Resource: !Ref SNSMonitoringTopic - Sid: AllowAccessToTopicOwner Effect: Allow Principal: AWS: '*' Action: [ 'sns:GetTopicAttributes', 'sns:SetTopicAttributes', 'sns:AddPermission', 'sns:RemovePermission', 'sns:DeleteTopic', 'sns:Subscribe', 'sns:ListSubscriptionsByTopic', 'sns:Publish', 'sns:Receive' ] Resource: !Ref SNSMonitoringTopic Condition: StringEquals: 'AWS:SourceOwner': !Ref 'AWS::AccountId' EventRulePolicyMonitor: Type: AWS::Events::Rule Properties: Name: !Sub ${AWS::StackName}-policy-monitor Description: > This EventBridge rule will capture IAM API Calls and events related to creation and deletion of policies. State: !Ref MonitorStatus EventPattern: source: - aws.iam detail-type: - AWS API Call via CloudTrail detail: eventSource: - iam.amazonaws.com eventName: - CreatePolicy - DeletePolicy - PutGroupPolicy - DeleteGroupPolicy - PutRolePolicy - DeleteRolePolicy - PutUserPolicy - DeleteUserPolicy - CreatePolicyVersion - DeletePolicyVersion - AttachRolePolicy - DetachRolePolicy - AttachUserPolicy - DetachUserPolicy - AttachGroupPolicy - DetachGroupPolicy Targets: - Arn: Ref: SNSMonitoringTopic Id: iam-policy-monitor InputTransformer: InputPathsMap: eventName: $.detail.eventName policyName: $.detail.requestParameters.policyName policyArn: $.detail.requestParameters.policyArn eventTime: $.detail.eventTime userIdentity: $.detail.userIdentity.arn sourceIPAddress: $.detail.sourceIPAddress InputTemplate: > "API Call '<eventName>' was issued on policy '<policyName><policyArn>'. This occurred at '<eventTime>' and was initiated by '<userIdentity>' from IP '<sourceIPAddress>'. Please review the details here: https://console.aws.amazon.com/iam/home?region=us-east-1#/policies/<policyArn>$jsonEditor?section=attached_entities ." EventRulePrincipalsMonitor: Type: AWS::Events::Rule Properties: Name: !Sub ${AWS::StackName}-principals-monitor Description: > This EventBridge rule will capture IAM API Calls and events related to creation and deletion of users, groups and roles. State: !Ref MonitorStatus EventPattern: source: - aws.iam detail-type: - AWS API Call via CloudTrail detail: eventSource: - iam.amazonaws.com eventName: - CreateUser - CreateGroup - CreateRole - UpdateUser - UpdateGroup - UpdateRole - DeleteUser - DeleteGroup - DeleteRole Targets: - Arn: Ref: SNSMonitoringTopic Id: iam-user-monitor InputTransformer: InputPathsMap: eventName: $.detail.eventName userName: $.detail.requestParameters.userName roleName: $.detail.requestParameters.roleName groupName: $.detail.requestParameters.groupName eventTime: $.detail.eventTime userIdentity: $.detail.userIdentity.arn sourceIPAddress: $.detail.sourceIPAddress InputTemplate: > "API Call '<eventName>' was issued on '<userName><roleName><groupName>'. This occurred at '<eventTime>' and was initiated by '<userIdentity>' from IP '<sourceIPAddress>'. "
Die EventBridge-Regeln bereitstellen und sie aktivieren
Verwende entweder die AWS CloudFormation-Konsole oder die AWS Command Line Interface (AWS CLI), um die EventBridge-Regeln bereitzustellen.
AWS CloudFormation-Konsole
Führe die folgenden Schritte aus:
- Lade die Vorlage herunter, die du im vorherigen Abschnitt aktualisiert hast.
- Öffne die AWS CloudFormation-Konsole.
- Wähle für AWS-Region die Option us-east-1.
- Wähle Stack erstellen und dann Mit neuen Ressourcen (Standard).
- Wähle im Abschnitt Vorlage angeben die Option Eine Vorlagendatei hochladen.
- Wähle Datei wählen und wähle dann die Vorlage aus.
- Wähle Nächster Schritt.
- Gib im Abschnitt Stackname für Stackname einen Namen für den Stack ein.
- Gib im Abschnitt Parameter für EmailList die E-Mail-Adresse ein, an die du Benachrichtigungen erhalten möchtest.
- Wähle für MonitorStatus die Option AKTIVIERT.
- Behalte für SNSTopicName den Standardnamen oder wähle den eigenen Namen für ein Amazon Simple Notification Service (Amazon SNS)-Thema.
- Führe die restlichen Schritte im Einrichtungsassistenten aus und wähle dann Stapel erstellen.
- Suche im E-Mail-Posteingang nach einer Bestätigungs-E-Mail und folge dann den E-Mail-Anweisungen, um das Abonnement zu bestätigen.
AWS CLI
Hinweis: Wenn du beim Ausführen von AWS CLI-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Führe die folgenden Schritte aus:
-
Lade die Vorlage herunter und gib der Vorlage den Namen sample-event-rule-iam-sns.yaml.
-
Öffne eine Befehlszeile im Betriebssystem (OS) und wechsele zu dem Ordner, in dem sich die Vorlage befindet.
-
Führe den folgenden Befehl aus:
aws cloudformation --region=us-east-1 \ create-stack \ --stack-name iam-sample-monitor \ --template-body file://sample-event-rule-iam-sns.yaml \ --parameters \ ParameterKey=EmailList,ParameterValue="mail@example.com"Hinweis: Ersetze mail@example.com durch die E-Mail, mit der du Benachrichtigungen erhalten möchtest, und us-east-1 durch die Region.
-
Suche im E-Mail-Posteingang nach einer Bestätigungs-E-Mail und folge dann den E-Mail-Anweisungen, um das Abonnement zu bestätigen.
Testen, ob du eine Benachrichtigung erhältst
Führe die folgenden Schritte aus:
-
Öffne die IAM-Konsole.
-
In der E-Mail findest du eine Benachrichtigung über das Event. Die E-Mail-Benachrichtigung ähnelt dem folgenden Beispiel:
„Der API-Aufruf 'createPolicy' wurde für die Richtlinie 'test-policy' ausgegeben. Dies geschah am '2020-11-13T00:00:00Z' und wurde initiiert von 'arn:aws:sts::123456789012:assumed-role/your-role' from IP 'X.Y.Z.T'.
Bitte überprüfe die Details hier: https://us-east-1.console.aws.amazon.com/iam/home? region=us-east-1#/policies/.“
Ähnliche Informationen
CloudTrail zeichnet Inhalte für Verwaltungs-, Daten- und Netzwerkaktivitätsereignisse auf
- Themen
- Management & Governance
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 3 Jahren