IAM-IDs - AWS Identity and Access Management

IAM-IDs

IAM verwendet einige verschiedene Kennungen für Benutzer, IAM-Gruppen, Rollen, Richtlinien und Serverzertifikate. In diesem Abschnitt werden die IDs und deren jeweilige Verwendung beschrieben.

Anzeigenamen und -pfade

Wenn Sie einen Benutzer, eine Rolle, eine Gruppe oder eine Richtlinie erstellen oder ein Serverzertifikat hochladen, geben Sie diesen einen Anzeigenamen. Beispiele hierfür sind Bob, TestApp1, Entwickler, ManageCredentialsPermissions oder ProdServerCert.

Wenn Sie die IAM-API oder AWS Command Line Interface (AWS CLI) verwenden, um IAM-Ressourcen zu erstellen, können Sie einen optionalen Pfad angeben. Sie können einen einzelnen Pfad verwenden oder mehrere Pfade in einer Ordnerstruktur verschachteln. Beispielsweise können Sie den verschachtelten Pfad /division_abc/subdivision_xyz/product_1234/engineering/ verwenden, um der Organisationsstruktur Ihres Unternehmens zu entsprechen. Sie können dann eine Richtlinie einrichten, die allen Benutzern in diesem Pfad ermöglicht, auf die Richtliniensimulator-API zuzugreifen. Informationen zu dieser Richtlinie finden Sie unter: IAM: Zugriff auf die Richtliniensimulator-API basierend auf dem Benutzerpfad. Informationen darüber, wie ein Anzeigename angegeben werden kann, finden Sie in der Dokumentation zur User API. Weitere Beispiele für die Verwendung von Pfaden finden Sie unter IAM-ARNs.

Wenn Sie AWS CloudFormation zum Erstellen von Ressourcen verwenden, können Sie einen Pfad für Benutzer, IAM-Gruppen und Rollen sowie vom Kunden verwaltete Richtlinien angeben.

Wenn Sie einen Benutzer und eine Benutzergruppe im gleichen Pfad haben, fügt IAM den Benutzer nicht automatisch in diese Benutzergruppe ein. Sie können beispielsweise die Gruppe "Developers" erstellen und als deren Pfad /division_abc/subdivision_xyz/product_1234/engineering/ angeben. Wenn Sie einen Benutzer namens Bob erstellen und ihm denselben Pfad hinzufügen, bedeutet dies nicht, dass Bob automatisch der Benutzergruppe „Developers“ zugeordnet wird. IAM erzwingt keine Grenzen zwischen Benutzern oder IAM-Gruppen basierend auf deren Pfaden. Benutzer mit verschiedenen Pfaden können dieselben Ressourcen verwenden (dabei wird davon ausgegangen, dass Berechtigungen für diese Ressourcen erteilt wurden). Anzahl und Größe von IAM-Ressourcen in einem AWS-Konto sind begrenzt. Weitere Informationen finden Sie unter IAM und AWS STS-Kontingente.

IAM-ARNs

Die meisten Ressourcen haben einen Anzeigenamen, z. B. ein Benutzer mit dem Namen Bob oder eine Gruppe mit dem Namen Developers). Allerdings ist es für die Sprache der Berechtigungsrichtlinie erforderlich, dass Sie die Ressource oder Ressourcen im folgenden Amazon-Ressourcenname (ARN)-Format angeben.

arn:partition:service:region:account:resource

Wobei gilt:

  • partition identifiziert die Partition, in der sich die Ressource befindet. Für AWS-Standardregionen lautet die Partition aws. Wenn Sie Ressourcen in anderen Partitionen haben, lautet die Partition aws-partitionname. Die Aufteilung der Ressourcen in der Region China (Peking) lautet beispielsweise aws-cn. Es ist nicht möglich, zwischen Konten in verschiedenen Partitionen Zugriff zu delegieren.

  • service identifiziert das AWS-Produkt. IAM-Ressourcen verwenden immer iam.

  • region identifiziert die Region der Ressource an. Für IAM-Ressourcen bleibt dies grundsätzlich leer.

  • account gibt die AWS-Konto-ID ohne Bindestriche an.

  • resource identifiziert die spezifische Ressource anhand ihres Namens.

Sie können IAM- und AWS STS-ARNs mit der folgenden Syntax angeben. Der Teil zur Angabe der Region im ARN ist leer, da IAM-Ressourcen globale Ressourcen sind.

Syntax:

arn:aws:iam::account:root arn:aws:iam::account:user/user-name-with-path arn:aws:iam::account:group/group-name-with-path arn:aws:iam::account:role/role-name-with-path arn:aws:iam::account:policy/policy-name-with-path arn:aws:iam::account:instance-profile/instance-profile-name-with-path arn:aws:sts::account:federated-user/user-name arn:aws:sts::account:assumed-role/role-name/role-session-name arn:aws:sts::account:self arn:aws:iam::account:mfa/virtual-device-name-with-path arn:aws:iam::account:u2f/u2f-token-id arn:aws:iam::account:server-certificate/certificate-name-with-path arn:aws:iam::account:saml-provider/provider-name arn:aws:iam::account:oidc-provider/provider-name

Viele der folgenden Beispiele enthalten Pfade im Ressourcen-Teil des ARN. Pfade können in der AWS Management Console weder erstellt noch bearbeitet werden. Um Pfade zu verwenden, müssen Sie mit der Ressource arbeiten, indem Sie die AWS-API, die AWS CLI, oder die Tools for Windows PowerShell verwenden.

Beispiele:

arn:aws:iam::123456789012:root arn:aws:iam::123456789012:user/JohnDoe arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/JaneDoe arn:aws:iam::123456789012:group/Developers arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_A/Developers arn:aws:iam::123456789012:role/S3Access arn:aws:iam::123456789012:role/application_abc/component_xyz/RDSAccess arn:aws:iam::123456789012:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer arn:aws:iam::123456789012:role/service-role/QuickSightAction arn:aws:iam::123456789012:policy/UsersManageOwnCredentials arn:aws:iam::123456789012:policy/division_abc/subdivision_xyz/UsersManageOwnCredentials arn:aws:iam::123456789012:instance-profile/Webserver arn:aws:sts::123456789012:federated-user/JohnDoe arn:aws:sts::123456789012:assumed-role/Accounting-Role/JaneDoe arn:aws:sts::123456789012:self arn:aws:iam::123456789012:mfa/JaneDoeMFA arn:aws:iam::123456789012:u2f/user/JohnDoe/default (U2F security key) arn:aws:iam::123456789012:server-certificate/ProdServerCert arn:aws:iam::123456789012:server-certificate/division_abc/subdivision_xyz/ProdServerCert arn:aws:iam::123456789012:saml-provider/ADFSProvider arn:aws:iam::123456789012:oidc-provider/GoogleProvider arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-west-2.amazonaws.com/id/a1b2c3d4567890abcdefEXAMPLE11111 arn:aws:iam::123456789012:oidc-provider/server.example.org

In den folgenden Beispielen finden Sie weitere Details, um das ARN-Format für verschiedene Arten von IAM- und AWS STS-Ressourcen zu verstehen.

  • Ein IAM-Benutzer im Konto:

    Anmerkung

    Jeder IAM-Benutzername muss eindeutig sein. Beim Benutzernamen wird für den Benutzer nicht zwischen Groß- und Kleinschreibung unterschieden, z. B. während des Anmeldevorgangs, aber wenn Sie ihn in einer Richtlinie oder als Teil eines ARN verwenden, wird zwischen Groß- und Kleinschreibung unterschieden.

    arn:aws:iam::123456789012:user/JohnDoe
  • Ein anderer Benutzer mit einem Pfad basierend auf einem Organigramm:

    arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/JaneDoe
  • Einem IAM-Benutzer oder einer IAM-Gruppe:

    arn:aws:iam::123456789012:group/Developers
  • Eine IAM-Gruppe mit einem Pfad:

    arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_A/Developers
  • Eine IAM-Rolle:

    arn:aws:iam::123456789012:role/S3Access
  • Eine serviceverknüpfte Rolle:

    arn:aws:iam::123456789012:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer
  • Eine Servicerolle:

    arn:aws:iam::123456789012:role/service-role/QuickSightAction
  • Eine verwaltete Richtlinie:

    arn:aws:iam::123456789012:policy/ManageCredentialsPermissions
  • Ein Instance-Profil, das mit einer Amazon-EC2-Instance verknüpft werden kann:

    arn:aws:iam::123456789012:instance-profile/Webserver
  • Ein Verbundbenutzer in IAM mit dem Namen „Paulo“:

    arn:aws:sts::123456789012:federated-user/Paulo
  • Die aktive Sitzung einer Benutzerin mit der Rolle "Accounting-Role" und dem Rollen-Sitzungsnamen "Mary":

    arn:aws:sts::123456789012:assumed-role/Accounting-Role/Mary
  • Stellt die eigene Sitzung des Aufrufers dar, wenn sie als Ressource in einem API-Aufruf verwendet wird, z. B. der AWS STS-SetContext-API, die auf der aufrufenden Sitzung ausgeführt wird:

    arn:aws:sts::123456789012:self
  • Das dem Benutzer Jorge zugewiesene Gerät für Multifaktor-Authentifizierung:

    arn:aws:iam::123456789012:mfa/Jorge
  • Ein Serverzertifikat

    arn:aws:iam::123456789012:server-certificate/ProdServerCert
  • Ein Serverzertifikat mit einem Pfad, der ein Organigramm widerspiegelt:

    arn:aws:iam::123456789012:server-certificate/division_abc/subdivision_xyz/ProdServerCert
  • Identitätsanbieter (SAML und OIDC):

    arn:aws:iam::123456789012:saml-provider/ADFSProvider arn:aws:iam::123456789012:oidc-provider/GoogleProvider arn:aws:iam::123456789012:oidc-provider/server.example.org
  • OIDC-Identitätsanbieter mit einem Pfad, der eine Amazon-EKS-OIDC-Identitätsanbieter-URL widerspiegelt:

    arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-west-2.amazonaws.com/id/a1b2c3d4567890abcdefEXAMPLE11111

Ein weiterer wichtiger ARN ist der Stammbenutzer-ARN. Obwohl dies keine IAM-Ressource ist, sollten Sie mit dem Format dieses ARN vertraut sein. Er wird häufig im Principal-Element einer ressourcenbasierter Richtlinie verwendet.

  • Das AWS-Konto zeigt Folgendes an:

    arn:aws:iam::123456789012:root

Das folgende Beispiel zeigt eine Richtlinie, die Sie Richard zuweisen können, damit er die Berechtigung zur Verwaltung seiner eigenen Zugriffsschlüssel erhält. Beachten Sie, dass die Ressource der IAM-Benutzer Richard ist.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageRichardAccessKeys", "Effect": "Allow", "Action": [ "iam:*AccessKey*", "iam:GetUser" ], "Resource": "arn:aws:iam::*:user/division_abc/subdivision_xyz/Richard" }, { "Sid": "ListForConsole", "Effect": "Allow", "Action": "iam:ListUsers", "Resource": "*" } ] }
Anmerkung

Wenn Sie ARNs verwenden, um Ressourcen in einer IAM-Richtlinie zu identifizieren, können Sie Richtlinienvariablen einschließen. Richtlinienvariablen können Platzhalter für Laufzeitinformationen (z. B. den Benutzernamen) als Teil des ARN enthalten. Weitere Informationen finden Sie unter IAM-Richtlinienelemente: Variablen und Tags

Verwenden von Platzhaltern und Pfaden in ARNs

Sie können im Ressourcenabschnitt der ARN Platzhalter verwenden, um mehrere Benutzer oder IAM-Gruppen oder -Richtlinien anzugeben. Wenn Sie beispielsweise alle Benutzer, die auf product_1234 arbeiten, angeben möchten, geben Sie Folgendes an:

arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/product_1234/*

Wenn Sie Benutzer haben, deren Namen mit der Zeichenfolge app_ beginnen, können Sie sich mit dem folgenden ARN auf alle beziehen.

arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/product_1234/app_*

Um alle Benutzer, IAM-Gruppen oder Richtlinien in Ihrem AWS-Konto anzugeben, verwenden Sie nach dem user/-, group/- oder policy/-Teil der ARN jeweils ein Platzhalterzeichen.

arn:aws:iam::123456789012:user/* arn:aws:iam::123456789012:group/* arn:aws:iam::123456789012:policy/*

Wenn Sie den folgenden ARN für einen Benutzer arn:aws:iam::111122223333:user/* angeben, passt er zu beiden der folgenden Beispiele.

arn:aws:iam::111122223333:user/JohnDoe arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/JaneDoe

Wenn Sie jedoch den folgenden ARN für einen Benutzer arn:aws:iam::111122223333:user/division_abc* angeben, stimmt er mit dem zweiten Beispiel überein, aber nicht mit dem ersten.

arn:aws:iam::111122223333:user/JohnDoe arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/JaneDoe

Verwenden Sie keinen Platzhalter innerhalb von user/, group/oder policy/ im ARN. Beispielsweise lässt IAM folgendes nicht zu:

arn:aws:iam::123456789012:u*
Beispiel für die Verwendung von Pfaden und ARNs für eine projektbasierte Gruppe

Pfade können in der AWS Management Console weder erstellt noch bearbeitet werden. Um Pfade zu verwenden, müssen Sie mit der Ressource arbeiten, indem Sie die AWS-API, die AWS CLI, oder die Tools for Windows PowerShell verwenden.

In diesem Beispiel erstellt Jules in der Gruppe „Marketing_Admin“ eine projektbasierte Gruppe im Pfad /marketing/. Jules ordnet Benutzer aus verschiedenen Teilen des Unternehmens der Gruppe zu. Dieses Beispiel veranschaulicht, dass keine Beziehung zwischen dem Pfad und den Gruppen, in denen sich der Benutzer befindet, existiert.

Die Marketinggruppe möchte ein neues Produkt einführen, daher erstellt Jules eine neue Gruppe im Pfad /marketing/ mit dem Namen Widget Launch. Jules weist dann die folgende Richtlinie der Gruppe zu, die der Gruppe den Zugriff auf Objekte auf den Teil vom example_bucket, der für diese Markteinführung vorgesehen ist, gewährt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::example_bucket/marketing/newproductlaunch/widget/*" }, { "Effect": "Allow", "Action": "s3:ListBucket*", "Resource": "arn:aws:s3:::example_bucket", "Condition": {"StringLike": {"s3:prefix": "marketing/newproductlaunch/widget/*"}} } ] }

Jules fügt dann die Benutzer, die an dieser Markteinführung arbeiten, der Gruppe hinzu. Dies schließt Patricia und Eli aus dem /Marketing/-Pfad ein. Außerdem werden auch Chris und Chloe aus dem Pfad /sales/ sowie Alice und Jim aus dem Pfad /legal/ der Gruppe hinzugefügt.

Eindeutige Bezeichner

Wenn IAM einen Benutzer, eine Gruppe, Rolle, Richtlinie, ein Instance-Profil oder Serverzertifikat erstellt, weist es jeder Ressource eine eindeutige ID zu. Die eindeutige ID sieht wie folgt aus:

AIDAJQABLZS4A3QDU576Q

In den meisten Fällen verwenden Sie Anzeigenamen und ARNs, wenn Sie mit IAM-Ressourcen arbeiten. Auf diese Weise müssen Sie die eindeutige ID für eine bestimmte Ressource nicht kennen. Die eindeutige ID kann allerdings in einigen Fällen nützlich sein, wenn die Verwendung von Anzeigenamen unpraktisch ist.

Ein Beispiel bezieht sich auf die Wiederverwendung von Anzeigenamen in Ihrem AWS-Konto. Innerhalb Ihres Kontos muss ein Anzeigename für einen Benutzer, eine Gruppe, eine Rolle oder eine Richtlinie eindeutig sein. Sie können beispielsweise einen IAM-Benutzer mit dem Namen John erstellen. Ihr Unternehmen verwendet Amazon S3 und hat einen Bucket mit Ordnern für jeden Mitarbeiter. IAM-Benutzer John ist ein Mitglied einer IAM-Benutzergruppe mit dem Namen User-S3-Access mit Berechtigungen, mit denen Benutzer nur auf ihre eigenen Ordner im Bucket zugreifen können. Ein Beispiel für das Erstellen einer identitätsbasierten Richtlinie, die es IAM-Benutzern erlaubt, auf ihr eigenes Bucket-Objekt in S3 unter Verwendung des Anzeigenamens von Benutzern zuzugreifen, finden Sie unter Amazon S3:: Gewährt IAM-Benutzern programmgesteuert und in der Konsole Zugriff auf ihr S3-Stammverzeichnis..

Angenommen, der Mitarbeiter mit dem Namen John verlässt Ihr Unternehmen und Sie löschen den entsprechenden IAM-Benutzer mit Namen John. Später jedoch fängt ein anderer Mitarbeiter mit dem Namen John an und Sie erstellen einen neuen IAM-Benutzer mit dem Namen John. Sie fügen den neuen IAM-Benutzer mit dem Namen John zur bestehenden IAM-Benutzergruppe User-S3-Access hinzu. Wenn die Richtlinie, die mit der Benutzergruppe verbunden ist, den benutzerfreundlichen IAM-Benutzernamen John angibt, ermöglicht die Richtlinie dem neuen John den Zugriff auf Informationen, die der ehemalige John hinterlassen hat.

Im Allgemeinen empfehlen wir, dass Sie in Ihren Richtlinien den -ARN für die Ressource anstelle ihrer eindeutigen ID angeben. Allerdings haben IAM-Benutzer eine eindeutige ID, selbst wenn Sie einen neuen IAM-Benutzer mit einem vorher gelöschten Anzeigenamen erstellen. In diesem Beispiel haben der alte IAM-Benutzer John und der neue IAM-Benutzer John unterschiedliche, eindeutige IDs. Sie können ressourcenbasierte Richtlinien erstellen, die den Zugriff nach einer eindeutigen ID und nicht nur nach dem Benutzernamen gewähren. Dadurch wird die Wahrscheinlichkeit verringert, dass Sie versehentlich Zugriff auf Informationen gewähren, die ein Mitarbeiter nicht erhalten sollte.

Das folgende Beispiel zeigt, wie Sie eindeutige IDs im Principal-Element einer ressourcenbasierten Richtlinie angeben können.

"Principal": { "AWS": [ "arn:aws:iam::111122223333:role/role-name", "AIDACKCEVSQ6C2EXAMPLE", "AROADBQP57FF2AEXAMPLE" }

Das folgende Beispiel zeigt, wie Sie mithilfe von Condition-Element einer Richtlinie mit globalem Bedingungsschlüssel aws:userid eindeutige IDs angeben können.

"Condition": { "StringLike": { "aws:userId": [ "AIDACKCEVSQ6C2EXAMPLE", "AROADBQP57FF2AEXAMPLE:role-session-name", "AROA1234567890EXAMPLE:*", "111122223333" ] } }

Ein weiteres Beispiel, in dem Benutzer-IDs nützlich sein können, ist, wenn Sie Ihre eigene Datenbank (oder ein anderes Speichermedium) für IAM-Benutzer- oder -Rolleninformationen pflegen. Die eindeutige ID kann einen eindeutigen Bezeichner für jeden von Ihnen erstellten IAM-Benutzer oder -Rolle bereitstellen. Dies ist der Fall, auch wenn Sie im Laufe der Zeit über IAM-Benutzer oder -Rollen verfügen, die wie im vorherigen Beispiel einen Namen wiederverwenden.

Grundlegendes zu eindeutigen ID-Präfixen

IAM verwendet die folgenden Präfixe, um anzugeben, auf welche Art von Ressource jede eindeutige ID angewendet wird. Präfixe können je nach Zeitpunkt ihrer Erstellung unterschiedlich sein.

Präfix Ressourcentyp
ABIA AWS STS-Service-Bearertoken
ACCA Kontextspezifische Anmeldeinformationen

AGPA

Benutzergruppe

AIDA

IAM-Benutzer

AIPA Das Amazon EC2-Instance-Profil
AKIA Zugriffsschlüssel
ANPA

Verwaltete Richtlinie

ANVA

Version in einer verwalteten Richtlinie

APKA Öffentlicher Schlüssel
AROA Rolle
ASCA Zertifikat

ASIA

Temporäre (AWS STS) Zugriffsschlüssel-IDs verwenden diesen Präfix. Sie sind jedoch nur eindeutig, wenn sie gemeinsam mit dem geheimen Zugriffsschlüssel und dem Sitzungstoken verwendet werden.

Abrufen des eindeutigen Bezeichners

Die eindeutige ID für eine -Ressource ist in der IAM-Konsole nicht verfügbar. Um die eindeutige ID zu ermitteln, können Sie folgende AWS CLI-Befehle oder IAM-API-Aufrufe verwenden.

AWS CLI:

IAM-API: