Wie kann ich die Kontoaktivitäten bestimmter IAM-Benutzer, Rollen und AWS-Zugriffsschlüssel überwachen?

Lesedauer: 5 Minute
0

Ich möchte die Kontoaktivitäten bestimmter AWS Identity and Access Management (IAM)-Identitäten anzeigen und überwachen.

Kurzbeschreibung

Um die Kontoaktivitäten bestimmter IAM-Identitäten einzusehen und zu überwachen, können Sie einen/eine der folgenden AWS-Services und -Funktionen verwenden:

Lösung

Verwendung des CloudTrail-Ereignisverlaufs

Hinweis: Sie können CloudTrail verwenden, um den Ereignisverlauf der letzten 90 Tage zu durchsuchen.

1.Öffnen Sie die CloudTrail-Konsole.

2.Wählen Sie Ereignisverlauf aus.

3.Wählen Sie unter Filter die Dropdownliste aus. Wählen Sie dann Benutzername aus.
Hinweis: Sie können auch nach dem AWS-Zugriffsschlüssel filtern.

4.Geben Sie im Textfeld Benutzer- oder Rollennamen eingeben den „Anzeigenamen“ des IAM-Benutzers oder den Sitzungsnamen der angenommenen Rolle ein.

Hinweis: Der Rollensitzungsname für eine bestimmte Sitzung ist der Wert, der als Sitzungsname angegeben wird, wenn die Rolle übernommen wird. Der Wert für das Feld „Benutzername“ ist nicht der Rollenname für Aufrufe, die mithilfe der IAM-Rolle getätigt werden.

5.Geben Sie für Zeitraum den gewünschten Zeitraum ein. Wählen Sie dann Übernehmen aus.

6.Erweitern Sie das Ereignis unter Ereigniszeit. Wählen Sie dann Ereignis anzeigen aus.

Das userIdentity-Element enthält Details zum Typ der IAM-Identität, von der die Anfrage gestellt wurde, sowie über die bereitgestellten Anmeldeinformationen.

Beispiel für ein userIdentity-Element, das die IAM-Benutzeranmeldeinformationen enthält, die für einen API-Aufruf verwendet werden

Hinweis: Ersetzen Sie Alice durch den Benutzernamen, nach dem Sie suchen. Geben Sie den „Anzeigenamen“ des IAM-Benutzers oder den „Rollensitzungsnamen“ der übernommenen Rolle“ ein. Der Rollensitzungsname für eine bestimmte Sitzung ist der Wert, der als Sitzungsname angegeben wird, wenn die Rolle übernommen wird. Bei Aufrufen, die mit der IAM-Rolle getätigt werden, ist der Wert für das Feld userName nicht der Rollenname.

"userIdentity": {
  "type": "IAMUser",
  "principalId": "AIDAJ45Q7YFFAREXAMPLE",
  "arn": "arn:aws:iam::123456789012:user/Alice",
  "accountId": "123456789012",
  "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
  "userName": "Alice"
}

Beispiel für ein userIdentity-Element, das temporäre Sicherheitsanmeldeinformationen enthält

"userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName",
    "arn": "arn:aws:sts::123456789012:assumed-role/RoleToBeAssumed/AssumedRoleSessionName",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "20131102T010628Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAIDPPEZS35WEXAMPLE",
        "arn": "arn:aws:iam::123456789012:role/RoleToBeAssumed",
        "accountId": "123456789012",
        "userName": "RoleToBeAssumed"
      }
   }
}

Hinweis: Der CloudTrail-Ereignisverlauf verwendet den Sitzungsnamen der angenommenen Rolle als Benutzernamen für die Filterung von Ereignissen.

Der API-Aufruf verwendet temporäre Sicherheitsanmeldeinformationen, die durch die Übernahme einer IAM-Rolle abgerufen werden. Das Element enthält zusätzliche Informationen zur Rolle, die zum Abrufen von Anmeldeinformationen übernommen wird.

Hinweis: Wenn Sie keine Benutzeraktivitäten sehen, überprüfen Sie, ob der AWS-Service unterstützt wird und das API-Ereignis von CloudTrail aufgezeichnet wurde. Weitere Informationen finden Sie unter AWS-Servicethemen für CloudTrail.

Zur Verwendung von CloudWatch Logs Insights

Hinweis: Sie können CloudWatch Logs Insights verwenden, um den API-Verlauf der letzten 90 Tage zu durchsuchen. Für die Protokollierung bei Amazon CloudWatch Logs muss ein Trail erstellt und konfiguriert worden sein. Weitere Informationen finden Sie unter Trail erstellen.

1.Öffnen Sie die CloudWatch-Konsole.

2.Wählen Sie Protokolle aus.

3.Wählen Sie unter Protokollgruppen Ihre Protokollgruppe aus.

4.Wählen Sie Protokollgruppe suchen aus.

5.Geben Sie unter Ereignisse filtern eine Abfrage ein, um entweder nach den API-Aufrufen eines Benutzers oder nach bestimmten API-Aktionen zu suchen. Wählen Sie dann das Aktualisierungssymbol aus.

Beispielabfrage zum Durchsuchen von Protokollen nach API-Aufrufen eines Benutzers

Hinweis: Ersetzen Sie Alice durch den Benutzernamen, nach dem Sie suchen. Geben Sie den „Anzeigenamen“ des IAM-Benutzers oder den „Rollensitzungsnamen“ der übernommenen Rolle“ ein. Der Rollensitzungsname für eine bestimmte Sitzung ist der Wert, der als Sitzungsname angegeben wird, wenn die Rolle übernommen wird. Bei Aufrufen, die mit der IAM-Rolle getätigt werden, ist der Wert für das Feld userName nicht der Rollenname.

{ $.userIdentity.userName = "Alice" }

Beispielabfrage zum Durchsuchen von Protokollen nach bestimmten API-Aktionen

Hinweis: Die folgende Beispielabfrage sucht nach der API-Aktion DescribeInstances.

{ ($.eventName = "DescribeInstances") && ($.requestParameters.userName = "Alice"  ) }

Weitere Informationen finden Sie unter CloudWatch Logs Insights-Abfragesyntax.

Zur Verwendung von Athena-Abfragen

Hinweis: Sie können Athena verwenden, um CloudTrail-Protokolle der letzten 90 Tage abzufragen.

1.Öffnen Sie die Athena-Konsole.

2.Wählen Sie Abfrage-Editor aus.

3.Geben Sie Ihrem Anwendungsfall entsprechend eine der folgenden Beispielabfragen ein. Wählen Sie dann Abfrage ausführen aus:

Beispielabfrage zur Rückgabe aller CloudTrail-Ereignisse, die von einem bestimmten IAM-Benutzer ausgeführt wurden

Wichtig: Ersetzen Sie athena-table durch Ihren Athena-Tabellennamen. Ersetzen Sie Alice durch den IAM-Benutzer, für den Sie die Kontoaktivitäten anzeigen möchten.

SELECT *
FROM athena-table
WHERE useridentity.type = 'IAMUser'
AND useridentity.username LIKE 'Alice';

Beispielabfrage zum Filtern aller API-Aktivitäten, die von einer IAM-Rolle ausgeführt wurden

Hinweis: Ersetzen Sie role-name durch Ihren IAM-Rollennamen.

SELECT *
FROM athena-table
WHERE useridentity.sessionContext.sessionissuer.arn LIKE '%role-name%'
AND useridentity.sessionContext.sessionissuer.type = 'Role';

Beispielabfrage zum Abgleich des Rollen-ARN

SELECT *
FROM athena-table
WHERE useridentity.sessionContext.sessionissuer.arn = 'arn:aws:iam::account-id123456789:role/role-name'
AND useridentity.sessionContext.sessionissuer.type = 'Role';

Beispielabfrage zum Filtern aller Aktivitäten mithilfe der IAM-Zugriffsschlüssel-ID

SELECT eventTime, eventName, userIdentity.principalId,eventSource
FROM athena-table
WHERE useridentity.accesskeyid like 'AKIAIOSFODNN7EXAMPLE'

Verwandte Informationen

Wie verwende ich AWS CloudTrail, um API-Aufrufe an meine Amazon EC2-Instances zu verfolgen?

Wie verwende ich CloudTrail, um zu sehen, ob eine Sicherheitsgruppe oder Ressource in meinem AWS-Konto geändert wurde?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren