Wie übernehme ich eine IAM-Rolle mit AWS CLI?

Wie Ubernehme Ich Eine Iam Rolle Mit Aws Cli



Da AWS mehrere Dienste und enorme Vorteile bietet, ist es nur natürlich, dass die Sicherheitsbedenken von Seiten der IT-Experten geäußert wurden. Um diese Sicherheitsbedenken auszuräumen, wurde der IAM-Dienst von AWS eingeführt. AWS IAM ist einer der wichtigsten Webdienste, mit denen Benutzer AWS-Ressourcen sichern können. IAM stellt die Funktionalität einer zentralen Zugriffsverwaltung der AWS-Dienste bereit, indem es die Berechtigungen für verschiedene Benutzer definiert.

Kurzer Überblick

In diesem Artikel erfahren Sie mehr über:







Was ist die AWS IAM-Rolle?
Was ist die Übernahmerolle in AWS?
Wie übernehme ich eine IAM-Rolle mit AWS CLI?



Abschließende Gedanken



Mit IAM-Rollen und -Berechtigungen können wir den authentifizierten und autorisierten Zugriff auf die AWS-Dienste bestimmen. Diese Rollen und Berechtigungen können nur vom Root-Benutzer (Eigentümer) des AWS-Kontos zugewiesen werden.





Was ist die AWS IAM-Rolle?

Die IAM-Rolle ist eine Identität, die vom Root-Benutzer innerhalb des AWS-Kontos erstellt wird. Dieser Identität werden spezifische Berechtigungen zugewiesen, die den Zugriffsbereich der IAM-Rolle auf AWS-Ressourcen definieren. Diese Berechtigungen können entweder von AWS verwaltet oder vom Root-Benutzer individuell definiert werden.

Eine IAM-Rolle ist dem IAM-Benutzer sehr ähnlich, außer dass es sich bei der IAM-Rolle um eine Identität mit bestimmten Berechtigungen handelt, während der Benutzer diese Rollen übernehmen kann, um bestimmte Funktionen auszuführen. Die der Rolle gewährten Berechtigungen legen fest, welche Aktionen mit dieser Identität (IAM-Rolle) ausgeführt werden können.



Was ist die Übernahmerolle in AWS?

„Assume Role“ ist eine der Funktionen des AWS IAM-Dienstes, die es dem Benutzer ermöglicht, mit AWS-Diensten zu agieren, obwohl dem Benutzer keine Berechtigungen für den Zugriff auf oder die Bearbeitung der Ressource innerhalb des Dienstes zugewiesen sind. Diese Berechtigungen werden dem Benutzer indirekt bei der Übernahme einer Rolle zugewiesen. Für den Zugriff auf die AWS-Ressourcen wird ein Satz temporärer Anmeldeinformationen zusammen mit einer sitzungsbasierten Anmeldung verwendet.

Zu diesen temporären Anmeldeinformationen gehören ein geheimer Zugriffsschlüssel, eine Zugriffsschlüssel-ID und ein Sicherheitstoken. IAM-Rollen, die vom AWS-Root-Benutzer erstellt wurden, können von den anderen Benutzern innerhalb des AWS-Kontos oder den Benutzern übernommen werden, deren ARN in der Richtlinie der Rolle erwähnt ist. Die Richtlinie, die den ARN der Benutzer oder Ressourcen enthält, wird als bezeichnet Vertrauensrichtlinie .

Was ist der Unterschied zwischen der Berechtigungsrichtlinie und der Vertrauensrichtlinie?

Bevor die Rollenübernahmefunktion über verschiedene Methoden implementiert wird, müssen zwei Kernkonzepte vom Benutzer verstanden werden. Es gibt zwei Arten von Richtlinien im IAM-Dienst:

    • Vertrauensrichtlinie: Eine Vertrauensrichtlinie bestimmt, wer eine bestimmte IAM-Rolle übernehmen kann. Damit eine Rolle von einem Benutzer übernommen werden kann, wird der ARN des Benutzers in der Vertrauensrichtlinie der IAM-Rolle erwähnt. Diese Vertrauensrichtlinie bestimmt, ob der Benutzer oder die Ressourcen eine vertrauenswürdige Entität für die Übernahme dieser Rolle ist.
    • Berechtigungsrichtlinie: Diese Richtlinie bestimmt, was ein Benutzer tun kann oder welche Aktionen mit der Rolle ausgeführt werden können.

Wie übernehme ich eine IAM-Rolle mit AWS CLI?

Die Übernahme einer Rolle ist vergleichbar damit, sich als ein anderer Benutzer auszugeben, der authentifiziert und berechtigt ist, bestimmte Aktionen auszuführen. Bei der Annahme einer Identität hat AWS dafür gesorgt, dass die Sicherheit erhalten bleibt.

Lassen Sie uns die Funktionsweise der Funktion „Rolle übernehmen“ anhand des folgenden Beispiels verstehen.

Zum Beispiel, Im AWS-Konto ist ein Benutzer vorhanden, dem keine Berechtigungen für den S3-Bucket zugewiesen wurden. Der „Schreibgeschützter Zugriff“ wird die Berechtigungsrichtlinie genannt, die einer IAM-Rolle zugeordnet ist. Damit der Benutzer diese Rolle übernehmen kann, wird der ARN des Benutzers in der Richtlinie der IAM-Rolle erwähnt. Diese Richtlinie heißt jetzt als „Vertrauenspolitik“ und es unterscheidet sich von der Berechtigungsrichtlinie. Die Vertrauensrichtlinie ist von entscheidender Bedeutung, da sie AWS dabei hilft, festzustellen, ob der Benutzer eine autorisierte Entität ist oder nicht.

Beachten Sie, dass der ARN in der Vertrauensrichtlinie und nicht in der Berechtigungsrichtlinie der IAM-Rolle erwähnt wird. Durch die Übernahme einer Rolle kann der Benutzer einige administrative Aktionen ausführen, die durch die Berechtigungsrichtlinie der Rolle definiert sind. Zu diesen Aktionen gehören das Hinzufügen, Löschen, Ändern oder Wiederherstellen einer Ressource usw.

Im Folgenden sind die drei Methoden zum Übernehmen einer Rolle mit AWS CLI aufgeführt:

Methode 1: Verwendung des STS (Security Token Service)

Die Benutzer können eine Rolle übernehmen, indem sie die Befehle im STS-Abschnitt (Secure Token Service) ausführen, der eine Reihe temporärer Anmeldeinformationen zurückgibt. Die temporären Anmeldeinformationen werden verwendet, um eine sitzungsbasierte Anmeldung einzurichten, um API-Aufrufe an die Ressourcen durchzuführen. Es gibt jedoch welche zwei Ausnahmen während der Verwendung des STS, d. h. GetFederationToken Und GetSessionToken.

Dem Benutzer ist der Zugriff auf diese Token untersagt, um die vertraulichen Informationen der Sitzungs- und Verbundtokens zu schützen. Damit die Sicherheit unter keinen Umständen gefährdet wird. Durch die Übernahme einer Rolle kann ein Benutzer die ihm zugewiesenen Berechtigungen erweitern.

In diesem Abschnitt des Artikels fordern wir mithilfe der STS-Befehle eine Reihe temporärer Anmeldeinformationen an. Nachfolgend sind die Schritte aufgeführt:

Schritt 1: Erstellen Sie einen Benutzer und eine Benutzerrichtlinie

Zuerst werden wir es tun Erstellen Sie einen IAM-Benutzer ohne Berechtigungen. Öffnen Sie dazu die CMD aus dem Startmenü von Windows:


Nur der Root-Benutzer dürfen erstellen ein IAM-Benutzer innerhalb des AWS-Kontos. Melden Sie sich daher mit dem folgenden Befehl beim AWS-Root-Konto an:

aws konfigurieren


Die Anmeldeinformationen sind für diese Demo bereits in der CLI konfiguriert, wie in der Ausgabe des Befehls gezeigt:


Erfahren Sie mehr:

Zu Erstellen Sie einen IAM-Benutzer Geben Sie den folgenden Befehl an die CLI ein:

aws ich bin Create-User --Nutzername Demo-Benutzer


Ersetze das Demo-Benutzer mit Ihrem IAM-Benutzername.

Speichern Sie die „Arn“ wird in der Ausgabe des Befehls so angegeben, wie er sein wird erforderlich Wann Erstellen Die Vertrauensrichtlinie :


Mehr lesen:

Der nächste Schritt besteht darin erlauben Der Benutzer (Demo-Benutzer ) Zu eine Rolle übernehmen . Erstellen Sie zu diesem Zweck eine JSON-Datei mit irgendwelchen Texteditor Sie bevorzugen. Für diese Demo haben wir verwendet Notizblock wie im unten genannten Befehl angegeben:

Für Windows

Notepad user-policy.json


Ersetze das Benutzerrichtlinie durch den Namen Ihrer IAM-Richtlinie.

Für Linux-Betriebssystem

Weil user-policy.json


Derzeit verwenden wir für diese Demo das Windows-Betriebssystem:


Dadurch wird der Notizblock geöffnet. Fügen Sie die folgende Richtlinie in den Notizblock ein und drücken Sie „STRG + S“ über die Tastatur, um Änderungen zu speichern:

{
'Ausführung' : „17.10.2012“ ,
'Stellungnahme' : [
{
'Wirkung' : 'Erlauben' ,
'Aktion' : [
„ec2:Describe*“ ,
„iam:ListRoles“ ,
„sts:AssumeRole“
] ,
'Ressource' : „*“
}
]
}


Nachfolgend finden Sie eine kurze Beschreibung der angegebenen Richtlinie:

    • ec2:Beschreiben: Diese Berechtigung gibt an, dass der Benutzer alle AMIs, Snapshots oder EC2-Instanzen anzeigen oder auflisten kann
    • iam:ListRoles: Diese Berechtigung gibt an, dass der Benutzer alle Rollen innerhalb des IAM-Dienstes auflisten kann.
    • sts:AssumeRole: Diese Berechtigung bedeutet, dass der Benutzer eine im IAM-Dienst definierte Rolle übernehmen kann.

Hier wurde die Richtlinie im Editor bearbeitet und gespeichert:


Jede AWS Ressource ist ein zugeordnet Zugriffsressourcenname (ARN) welche eindeutig identifiziert die Ressource. Um den ARN der Richtlinie zu ermitteln, verwenden Sie den unten aufgeführten Befehl.

aws iam create-policy --Versicherungsname Benutzerrichtlinie --Richtliniendokument Datei: // user-policy.json


Im oben genannten Befehl:

    • -Versicherungsname: Ersetzen Sie den Wert „Benutzerrichtlinie“ mit einem beliebigen Policennamen Ihrer Wahl.
    • -Richtliniendokument: Ersetzen Sie in diesem Feld das „ user-policy.json“ durch den Namen der JSON-Datei, die die Richtlinie für den Benutzer enthält.

Die Ausgabe des oben genannten Befehls ist wie folgt. Speichern Sie die „Arn“ wird in der Ausgabe der Richtlinie erwähnt, da es erforderlich ist, wenn diese Richtlinie dem Benutzer zugeordnet wird:

Schritt 2: Fügen Sie dem Benutzer eine Richtlinie hinzu

Diese Richtlinie ermöglicht es dem Benutzer, die aufzulisten EC2-Instanzen , Freunde usw. Wenn der Benutzer eine Rolle mit einer anderen Berechtigung übernimmt, kann der Benutzer nur die spezifische Aktion ausführen, die in der Berechtigungsrichtlinie zulässig ist.

Um die Richtlinie mit dem zuvor in diesem Abschnitt erstellten Benutzer zu verknüpfen, verwenden Sie den folgenden Befehl:

aws iam attachment-user-policy --Nutzername Demo-Benutzer --policy-arn „arn:aws:iam::123456789:policy/user-policy“


Im oben genannten Befehl:

    • -Nutzername: Ersetze das „Demo-Benutzer“ im -Nutzername Geben Sie in das Feld Ihren IAM-Benutzernamen ein.
    • –policy-arn: Ebenso in der –policy-arn, Präzisiere das „Arn“ aus der Ausgabe des vorherigen Befehls, d. h. –create-policy.

Durch Ausführen des Befehls nach Vornahme der erforderlichen Änderungen wurde die Richtlinie erfolgreich an den Benutzer angehängt:


Um zu überprüfen, ob die Richtlinie dem Benutzer zugeordnet wurde, geben Sie den folgenden Befehl an die CLI ein:

aws iam list-attached-user-policies --Nutzername Demo-Benutzer


Ersetze das Demo-Benutzer mit Ihrem IAM Nutzername beim Anlegen des Benutzers angegeben.

Die Ausgabe des folgenden Befehls überprüft, ob die Richtlinie erfolgreich an den Benutzer angehängt wurde:

Schritt 3: Erstellen Sie eine Vertrauensrichtlinie und eine IAM-Rolle

Eine Vertrauensbeziehung wird hergestellt, wenn eine Ressource oder der ARN eines Benutzers in einer Richtlinie angegeben wird. Diese Funktionalität ermöglicht es den Benutzern oder der Entität dann, bestimmte Aktionen auszuführen, da sie von der Richtlinie als vertrauenswürdig gelten.

In diesem Schritt erstellen wir eine Richtlinie, die die Vertrauensbeziehung zwischen der IAM-Rolle und dem Benutzer herstellt. Diese Vertrauensrichtlinie wird der IAM-Rolle zugeordnet. Die IAM-Rolle wird dann vom Benutzer übernommen, wodurch der Benutzer indirekt die in der Richtlinie angegebenen Aktionen ausführen kann.

Um eine Vertrauensrichtlinie zu erstellen, werden die Befehle wie folgt gegeben:

Für Windows

Notepad trust-role-policy.json


Ersetze das trust-role-policy.json mit dem Namen Ihrer Präferenz für die Police.

Für Linux-Betriebssystem

Weil trust-role-policy.json


Ersetze das trust-role-policy.json mit dem Namen Ihrer Präferenz für die Police.

Die Vertrauensrichtlinie folgt dem JSON-Format wie von der angegeben .json Erweiterung im folgenden Befehl:


Dadurch wird der Notizblock geöffnet. Paste die folgende Politik im Notizblock und drücken Sie die Taste „STRG + S“ Klicken Sie auf der Tastatur auf die Schaltfläche, um die Änderungen zu speichern. Der ARN des Benutzers kann auch aus dem Benutzer-Dashboard der IAM-Konsole kopiert werden. Besuchen Sie dazu das IAM-Dashboard und klicken Sie auf den Namen des Benutzers. Kopieren Sie aus der angezeigten Konfiguration den ARN des Benutzers, der im Abschnitt „Zusammenfassung“ angezeigt wird:

{
'Ausführung' : „17.10.2012“ ,
'Stellungnahme' : {
'Wirkung' : 'Erlauben' ,
'Wesentlich' : {
„AWS“ : „arn:aws:iam::123456789012:user/example-user“
} ,
'Aktion' : „sts:AssumeRole“
}
}


In der oben genannten Richtlinie:

    • AWS: Ersetze das AWS-Feldwert „arn:aws:iam::123456789012:user/example-user“ mit dem ARN des Benutzers was in der Ausgabe des Befehls –create-user angezeigt wurde.

Der Benutzer kann andere Benutzer daran hindern, die IAM-Rolle zu übernehmen, indem er den ARN des Benutzers im angibt „AWS“ Feld:


Mehr lesen:

Erstellen Sie nun eine IAM-Rolle und fügen Sie ihr die Vertrauensrichtlinie hinzu. Um eine IAM-Rolle zu erstellen, verwenden Sie den folgenden Befehl:

aws iam create-role --Rollenname Benutzer-Rolle --assume-role-policy-document Datei: // trust-role-policy.json


Nachfolgend finden Sie die Beschreibung der oben genannten Felder:

    • -Rollenname: In dieses Feld wird der Name eingegeben, der dieser IAM-Rolle zugewiesen wird. Ersetzen Sie den Wert „user-role“ durch den IAM-Rollennamen Ihrer Wahl.
    • –assume-role-policy-document: Geben Sie in diesem Feld den im Befehl angegebenen Pfad an. Ersetzen Sie „trust-role-policy.json“ durch den Richtliniennamen, den Sie im vorherigen Abschnitt angegeben haben.

Durch die Ausführung dieses Befehls werden mehrere Informationen in der Ausgabe zurückgegeben, z. B. ARN, Pfad, ID usw.:


Mehr lesen:

Wenn der Benutzer diese Rolle übernimmt, kann er folgende Aufgaben ausführen: „ReadOnlyAccess“ Action mit dem S3-Eimer. Der Befehl wird wie folgt gegeben:

aws iam attachment-role-policy --Rollenname Benutzer-Rolle --policy-arn „arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess“


Im obigen Befehl:

    • -Rollenname: Ersetzen ' Benutzer-Rolle' im Feld –role-name mit dem Name der IAM-Rolle die Sie zuvor in diesem Tutorial angegeben haben.
    • –policy-arn: Der im –policy-arn angegebene ARN bezieht sich auf die ReadOnlyAccess-Berechtigung für den S3-Bucket.

In diesem Bild wurde der Rolle die ReadOnlyAccess-Berechtigung für den S3-Bucket zugewiesen:


Um zu überprüfen, ob der Rolle die Berechtigung zugewiesen wurde oder nicht, verwenden Sie den folgenden Befehl:

aws iam list-attached-role-policies --Rollenname Benutzer-Rolle


Ersetze das 'Benutzer-Rolle' mit Ihrem IAM-Rollennamen.

Der „AmazonS3ReadOnlyAccess“ Die Berechtigung wurde an die IAM-Rolle angehängt. Die Ausgabe des Befehls sieht wie folgt aus:

Schritt 4: Erstellen Sie die Zugriffsschlüssel

In diesem Abschnitt erstellen wir die Zugriffsschlüssel für den Benutzer. Die Zugriffsschlüssel werden für die Anmeldung beim AWS-Konto verwendet:

aws iam create-access-key --Nutzername Demo-Benutzer


Ersetze das Demo-Benutzer mit Ihrem IAM-Benutzernamen, den Sie beim Erstellen eines Benutzers angegeben haben.

Hier hat der Befehl eine Reihe von Zugriffsschlüsselpaaren (AccessKeyId und Secret Access Key) mit zusätzlichen Details wie Erstellungsdatum, Status usw. zurückgegeben. Speichern die AccessKeyId und SecretAccessKey, wie sie später im Tutorial benötigt werden:


Mehr lesen:

Schritt 5: Konfigurieren Sie den Zugriffsschlüssel und überprüfen Sie den IAM-Benutzer

Um den Zugriffsschlüssel zu konfigurieren, geben Sie dem CMD den folgenden Befehl ein und geben Sie dann die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel ein:

aws konfigurieren


Geben Sie der CLI die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel an, die in Schritt 4 dieses Abschnitts erstellt wurden. Für die Region haben wir die Standardeinstellungen beibehalten. Benutzer können jedes Ausgabeformat als Standardausgabeformat konfigurieren. Für diese Demo haben wir die angegeben JSON Format:


Um zu überprüfen, ob der IAM-Benutzer konfiguriert wurde, geben Sie den folgenden Befehl an die CLI ein:

aws sts get-caller-identity


Die Ausgabe des Befehls zeigt an, dass die „Demo-Benutzer“ wurde erfolgreich konfiguriert und ist derzeit beim AWS-Konto angemeldet:


Um festzustellen, dass der IAM-Benutzer die EC2-Instanzen auflisten kann und derzeit keinen Zugriff auf den S3-Bucket hat, verwenden Sie den folgenden Befehl:

aws ec2 beschreiben-instanzen --Abfrage „Reservierungen[*].Instances[*].[VpcId, InstanceId, ImageId, InstanceType]“


Die Ausgabe des Befehls sieht wie folgt aus:


Geben Sie nun den folgenden Befehl ein, um zu überprüfen, ob der Benutzer auf den S3-Bucket zugreifen kann:

aws s3 ls


Dadurch wird angezeigt 'Zugriff abgelehnt' Fehler, der darauf hinweist, dass der Benutzer nicht auf den S3-Bucket zugreifen darf:

Schritt 6: Übernehmen Sie die IAM-Rolle

Der Benutzer hat die Berechtigung, die IAM-Rollen innerhalb des AWS-Kontos aufzulisten. Um die Rolle zu übernehmen, beschaffen wir uns daher zunächst die notwendigen Informationen wie ARN, indem wir den folgenden Befehl ausführen:

aws iam list-roles --Abfrage „Roles[?RoleName == 'user-role'].[RoleName, Arn]“


Ersetzen Sie „user-role“ durch den IAM-Rollennamen im Feld „RoleName“.

Der ARN wurde in der Ausgabe des oben genannten Befehls angegeben:


Da wir nun den ARN der IAM-Rolle haben, können wir die Rolle mit dem folgenden Befehl übernehmen:

aws sts übernimmt die Rolle --role-arn „arn:aws:iam::123456789012:role/example-role“ --role-session-name AWSCLI-Sitzung


Im obigen Befehl:

    • –role-arn: Ersetzen Sie den genannten Wert für –role-arn durch den ARN der IAM-Rolle.
    • –Rollensitzungsname: Der Benutzer kann für dieses Feld einen beliebigen Namen angeben.

Durch die Ausführung des oben genannten Befehls wurde eine Reihe temporärer Anmeldeinformationen zurückgegeben. Diese temporären Anmeldeinformationen werden verwendet, um die IAM-Rolle mit der gewünschten Berechtigung, d. h. ReadOnlyAccess, zu übernehmen. AccessKeyId und SecretAccessKey werden beim Konfigurieren dieser temporären Anmeldeinformationen verwendet:


Hier ist eine kurze Beschreibung der Ausgabe des Befehls:

    • Sitzungstoken: Der Sitzungstoken wird zum Erstellen der sitzungsbasierten Anmeldung verwendet. Speichern Sie den Wert dieses Felds, da er beim Konfigurieren der Anmeldeinformationen benötigt wird.
    • Ablauf: Das Sitzungstoken hat ein Ablaufdatum und eine Ablaufuhrzeit. Nach der angegebenen Zeit ist das Token nutzlos und der Benutzer kann die Rolle nicht übernehmen.

Schritt 7: Konfigurieren Sie die Umgebungsvariable

Um die temporären Anmeldeinformationen zu konfigurieren, verwenden wir den Befehl „set“ für Windows und geben dann den Wert der Zugriffsschlüssel-ID, des geheimen Zugriffsschlüssels, des Sitzungstokens usw. an:

Für Windows

Satz AWS_ACCESS_KEY_ID =RoleAccessKeyID


Ersetzen Sie RoleAccessKeyID durch die Zugriffsschlüssel-ID, die vom Befehl in Schritt 6 zurückgegeben wurde.

Für Linux-Betriebssystem

Export AWS_ACCESS_KEY_ID =RoleAccessKeyID


Ersetzen Sie RoleAccessKeyID durch die Zugriffsschlüssel-ID, die vom Befehl in Schritt 6 zurückgegeben wurde.

Der Zugriffsschlüssel wurde konfiguriert:


Als Nächstes konfigurieren wir den geheimen Zugriffsschlüssel mithilfe des Befehls „set“ für Windows:

Für Windows

Satz AWS_SECRET_ACCESS_KEY =RoleSecretKey


Ersetzen Sie den RoleSecretKey durch den Wert des geheimen Zugriffsschlüssels, der vom Befehl in Schritt 6 zurückgegeben wurde.

Für Linux-Betriebssystem

Export AWS_SECRET_ACCESS_KEY =RoleSecretKey


Ersetzen Sie AWS_SECRET_ACCESS_KEY durch den geheimen Zugriffsschlüssel, der vom Befehl in Schritt 6 zurückgegeben wurde.

Der geheime Zugriffsschlüssel wurde erfolgreich konfiguriert:


Zuletzt konfigurieren wir das Sitzungstoken, um die sitzungsbasierte Anmeldung einzurichten. Verwenden Sie zu diesem Zweck den unten genannten Befehl:

Für Windows

Satz AWS_SESSION_TOKEN =RoleSessionToken


Ersetzen Sie das RoleSessionToken durch den Sitzungstokenwert, der vom Befehl in Schritt 6 zurückgegeben wurde.

Für Linux-Betriebssystem

Export AWS_SESSION_TOKEN =RoleSessionToken


Ersetzen Sie das RoleSessionToken durch den Sitzungstokenwert, der vom Befehl in Schritt 6 zurückgegeben wurde.

Der Wert des Sitzungstokens wurde erfolgreich konfiguriert:


Um den Wert des Sitzungstokens von CMD zu kopieren, drücken Sie „STRG + UMSCHALT + C“ .

Überprüfen Sie nach der Konfiguration der Umgebungsvariablen mit dem folgenden Befehl, ob die Rolle vom Benutzer übernommen wurde:

aws sts get-caller-identity


Die Ausgabe des Befehls bestätigt, dass die IAM-Rolle vorhanden ist erfolgreich übernommen vom Benutzer wie die ARN-Rückgabe ist „arn:aws:sts::123456789012:assumed-role/user-role/AWSCLI-Session“ anstatt „arn:aws:iam::123456789012:user/demo-user“:


Da die Rolle die ReadOnlyAccess-Berechtigung enthält, sollte der Benutzer jetzt in der Lage sein, die Buckets zu registrieren. Geben Sie zu diesem Zweck den folgenden Befehl an die CLI weiter:

aws s3 ls


Die Ausgabe des Befehls trägt alle derzeit im AWS-Konto konfigurierten S3-Buckets erfolgreich ein:


Der Benutzer kann jedoch nicht auf den EC2-Dienst zugreifen, da die angenommene Rolle keine Berechtigung für den EC2-Dienst hat. Um dies zu überprüfen, verwenden Sie den folgenden Befehl:

aws ec2 beschreiben-instanzen --Abfrage „Reservierungen[*].Instances[*].[VpcId, InstanceId, ImageId, InstanceType]“


Zuvor konnte der Benutzer auf die EC2-Dienstinformationen zugreifen. Bei der Ausführung des oben genannten Befehls wird jedoch ein 'Zugriff abgelehnt' ein Fehler ist aufgetreten. Der Benutzer hat die IAM-Rolle erfolgreich übernommen:


Das ist alles aus diesem Abschnitt.

Bonus-Tipp: Deaktivieren Sie die Umgebungsvariablen

Um zum IAM-Benutzer, d. h. dem Demo-Benutzer, zurückzukehren, kann der Benutzer die Umgebungsvariablen entfernen, indem er die Umgebungsvariablen auf leere Zeichenfolgen setzt. Im Folgenden sind die Befehle aufgeführt:

Für Windows

SATZ AWS_ACCESS_KEY_ID =
SATZ AWS_SECRET_ACCESS_KEY =
SATZ AWS_SESSION_TOKEN =


Für Linux

Verwenden Sie den unten genannten Befehl:

nicht gesetzt AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


Die oben genannten Befehle deaktivieren die Umgebungsvariablen:


Nach der Ausführung der oben genannten Befehle sollte die Konsole nun Folgendes zurückgeben „Demo-Benutzer“ als aktuell angemeldeter Benutzer anstelle der angenommenen Rolle, d. h. Benutzerrolle. Zu diesem Zweck verwenden wir den folgenden Befehl:

aws sts get-caller-identity


Die Ausgabe des Befehls zeigt an, dass der aktuell angemeldete Benutzer ein Demo-Benutzer ist:


Um sich als Root-Benutzer anzumelden, folgen Sie ebenfalls den Anweisungen „C:\Benutzer%USERPROFILE%.aws“ Pfad und klicken Sie auf die Anmeldeinformationsdatei:


Ersetzen Sie in der Anmeldeinformationsdatei die Werte des Zugriffsschlüssels und des geheimen Zugriffsschlüssels durch den Zugriff und den geheimen Zugriffsschlüssel des Root-Benutzers:


Geben Sie der CLI den folgenden Befehl ein, um zu überprüfen, ob die Anmeldeinformationen ordnungsgemäß konfiguriert sind:

aws konfigurieren


Hier im Bild unten können wir sehen, dass der Zugriffsschlüssel und der geheime Zugriffsschlüssel des Root-Benutzers erfolgreich konfiguriert wurden:


Das ist alles aus diesem Abschnitt des Tutorials.

Methode 2: Verwenden des Parameters –profile

Eine andere Möglichkeit, die Rolle zu übernehmen, ist die Verwendung des Felds „–profile“ in der CLI. In diesem Abschnitt des Artikels wird die praktische Umsetzung der Übernahme einer Rolle in AWS über –profile vorgestellt. Nachfolgend sind die Schritte dafür aufgeführt:

Schritt 1: Erstellen Sie einen IAM-Benutzer

Um einen IAM-Benutzer zu erstellen, melden Sie sich über die CLI mit dem folgenden Befehl beim Root-Benutzerkonto an:

aws konfigurieren


Die Anmeldeinformationen sind für diese Demo bereits in der CLI konfiguriert, wie in der Ausgabe des Befehls gezeigt:


Erfahren Sie mehr:

Um einen IAM-Benutzer zu erstellen, geben Sie den folgenden Befehl an die CLI ein:

aws ich bin Create-User --Nutzername Profilbenutzer


Der Benutzer wurde erfolgreich erstellt. Speichern Sie den ARN des Benutzers wie im Bild unten dargestellt. Der ARN dieses IAM-Benutzers wird später in diesem Tutorial verwendet. Derzeit sind diesem IAM-Benutzer keine Berechtigungen zugeordnet:


Mehr lesen:

Schritt 2: Zugriffsschlüssel erstellen

In AWS wird jedem Benutzer ein Paar Zugriffsschlüssel für die Anmeldung zugewiesen. Um die Zugriffsschlüssel für diesen Benutzer zu erstellen, geben Sie ihm den folgenden Befehl:

aws iam create-access-key --Nutzername Profilbenutzer


Dieser Befehl gibt einen Satz Zugriffsschlüssel zurück. Speichern Die AccessKeyId Und SecretAccessKey da es beim Anmelden beim AWS-Konto erforderlich ist:


Wenn wir uns nun mit diesen AccessKeyIds und SecretAccessKeys bei der AWS CLI anmelden und auf eine beliebige Ressource zugreifen, z. S3-Eimer, der 'Zugriff abgelehnt' Es wird ein Fehler auftreten. Dies liegt daran, dass dem IAM-Benutzer derzeit keine Berechtigungen zugeordnet sind. Um sich bei der AWS CLI anzumelden, verwenden Sie den folgenden Befehl und geben Sie die zuvor erstellte Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel an:

aws konfigurieren --Profil Profilbenutzer


Ersetze das „Profilbenutzer“ mit dem IAM-Benutzernamen, den Sie beim Erstellen des Benutzers angegeben haben.

Hier haben wir uns erfolgreich als IAM-Benutzer bei der AWS CLI angemeldet:


Um zu überprüfen, ob dieser Benutzer über schreibgeschützte Berechtigungen für den S3-Bucket verfügt, geben Sie den folgenden Befehl an die CLI ein:

aws s3 ls --Profil Profilbenutzer


Ersetzen Sie den Profilbenutzer durch den IAM-Benutzernamen, den Sie beim Erstellen des Benutzers angegeben haben.

Da diesem Benutzer vom Root-Benutzer keine Berechtigung zugewiesen wurde, wird die Meldung „ Zugriff abgelehnt ' Fehler:

Schritt 3: Erstellen Sie eine Vertrauensrichtlinie und eine IAM-Rolle

Eine Vertrauensrichtlinie bestimmt, ob ein Benutzer oder eine AWS-Ressource eine vertrauenswürdige Entität für die Übernahme der Rolle und den Erwerb der Berechtigungen ist. Diese Vertrauensbeziehung wird durch Angabe des ARN des IAM-Benutzers oder der AWS-Ressource innerhalb der Berechtigungsrichtlinie erstellt.

Um eine Vertrauensrichtlinie innerhalb des IAM zu erstellen, geben Sie den folgenden Befehl an die CLI ein:

Für Windows

Notepad trust-policy.json


Ersetze das trust-policy.json mit dem Namen Ihrer Präferenz für die Police.

Für Linux-Betriebssystem

Weil trust-role-policy.json


Ersetze das trust-policy.json mit dem Namen Ihrer Präferenz für die Police.

Benutzer können jeden Texteditor ihrer Wahl verwenden. Für diese Demo verwenden wir den Notizblock:


Dadurch wird der Notizblock zum Erstellen der Vertrauensrichtlinie geöffnet. Fügen Sie die folgende Richtlinie in den Notizblock ein und drücken Sie „STRG + S“ über die Tastatur, um Änderungen anzuwenden und zu speichern:

{
'Ausführung' : „17.10.2012“ ,
'Stellungnahme' : {
'Wirkung' : 'Erlauben' ,
'Wesentlich' : {
„AWS“ : „arn:aws:iam::012345678910:user/profile-user“
} ,
'Aktion' : „sts:AssumeRole“
}
}


In der oben genannten Richtlinie: AWS: Ersetzen Sie den Wert „arn:aws:iam::012345678910:user/policy-user“ durch den ARN des zuvor in diesem Abschnitt erstellten IAM-Benutzers.

Die Richtlinie wurde im Editor bearbeitet:


Als Nächstes erstellen wir eine IAM-Rolle und hängen ihr die obige Vertrauensrichtlinie an. Verwenden Sie den folgenden Befehl, um eine IAM-Rolle zu erstellen:

aws iam create-role --Rollenname Meine Rolle --assume-role-policy-document Datei: // trust-policy.json


Im oben genannten Befehl:

    • -Rollenname: Ersetze das 'Meine Rolle' mit dem IAM-Rollennamen Ihrer Wahl.
    • –assume-role-policy-document: Ersetzen Sie in diesem Feld den Begriff „trust-policy.json“ durch den Namen Ihrer IAM-Vertrauensrichtlinie

Die IAM-Rolle wurde erfolgreich erstellt. Speichern Sie die IAM-Rolle. Speichern Sie den ARN der IAM-Rolle, wie im folgenden Bild hervorgehoben. Dieser ARN wird beim Konfigurieren des Profils des Benutzers verwendet:


Die an das IAM angehängte Vertrauensrichtlinie gibt an, ob der Benutzer für die Übernahme der Rolle vertrauenswürdig ist oder nicht. Die Berechtigungsrichtlinie bestimmt, ob die IAM-Rolle über die erforderliche Berechtigung zum Ausführen einer bestimmten Aktion mit AWS-Services verfügt oder nicht.

Da die Vertrauensrichtlinie an die IAM-Rolle angehängt wurde, besteht der nächste Schritt darin, die Berechtigungsrichtlinie an die IAM-Rolle anzuhängen. Der unten genannte Befehl wird verwendet, um die Berechtigungsrichtlinie an die IAM-Rolle anzuhängen:

aws iam attachment-role-policy --Rollenname Meine Rolle --policy-arn „arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess“


Hier wurde die Berechtigungsrichtlinie über CLI an die IAM-Rolle angehängt:

Schritt 4: Profil konfigurieren

Damit der Benutzer diese Rolle übernehmen kann, konfigurieren wir dieses Profil zunächst innerhalb der Anmeldeinformationen von AWS. Um diese temporären Anmeldeinformationen anzuhängen, geben Sie den folgenden Befehl ein:

Notizblock ~ / .aws / config


Bonus-Tipp: Beheben Sie „Pfad nicht angegeben“ im Notepad

Die Konfigurationsdatei enthält die [Standard]-Einstellung der AWS CLI. Wenn im Editor jedoch die Meldung „Das System kann den angegebenen Pfad nicht finden“ angezeigt wird, geben Sie den folgenden Befehl ein:

Notizblock .aws / config


Linux-Benutzer können das verwenden 'Weil' Editor zum Konfigurieren des Profils. Benutzer können einen beliebigen Editor ihrer Wahl verwenden, um die Konfigurationsdatei von AWS auf dem lokalen Computer zu öffnen:


Bearbeiten Sie in der im Notepad geöffneten Konfigurationsdatei die folgenden Änderungen:

[ Profil Profilbenutzer ]
role_arn = arn:aws:iam::012345678910:role / Meine Rolle
Quellprofil =Profilbenutzer


Im obigen Ausschnitt:

    • Role_arn: Ersetzen Sie den Wert „arn:aws:iam::012345678910:role/myrole“ durch den ARN der IAM-Rolle.
    • Quellprofil: Geben Sie in diesem Feld den Namen des IAM-Benutzers ein, der in Schritt 1 dieser Methode erstellt wurde.

Nachdem Sie die erforderlichen Änderungen vorgenommen haben, drücken Sie „STRG + S“ über die Tastatur, um Änderungen anzuwenden und zu speichern:


Um nun zu überprüfen, ob der Benutzer die S3-Buckets jetzt auflisten kann oder nicht, geben Sie den folgenden Befehl an die CLI ein:

aws s3 ls --Profil Profilbenutzer


Im obigen Befehl: –Profilbenutzer: Ersetzen Sie in diesem Feld den Wert „profile-use“ durch den Namen, den Sie in der Konfigurationsdatei angeben.

Da wir in der Konfigurationsdatei „profile-user“ angegeben haben, verwenden wir denselben Namen für den Befehl in der CLI. Bisher konnte der Benutzer nicht auf den S3-Dienst von AWS zugreifen, da ihm keine Berechtigungen zugewiesen wurden. Die IAM-Rolle verfügt über die Berechtigung „ReadOnlyAccess“ des S3-Buckets. Durch die Übernahme dieser Rolle kann der Benutzer daher die Buckets über das S3-Dashboard auflisten:


Das ist alles aus dieser Methode des Tutorials.

Methode 3: Verwendung von MFA (Multi-Faktor-Authentifizierung)

Durch die Aktivierung der Multi-Faktor-Authentifizierung kann der Benutzer eine zusätzliche Sicherheitsebene für sein Benutzerkonto konfigurieren. Wenn MFA aktiviert ist, können nicht autorisierte Benutzer nicht auf das Konto eines Benutzers zugreifen, selbst wenn sie ein Passwort und einen Benutzernamen angeben. Der MFA ist ein sechsstelliger Code, der für die Anmeldung am Konto erforderlich ist. Weitere Informationen zur Multi-Faktor-Authentifizierung finden Sie in diesem Artikel:

Im Folgenden sind die Schritte aufgeführt, um eine Rolle mit MFA über CLI zu übernehmen:

Schritt 1: Erstellen Sie einen IAM-Benutzer und aktivieren Sie MFA

Für diesen Schritt kann der Benutzer entweder die CLI zum Erstellen des Benutzers verwenden oder auf die AWS-Managementkonsole zugreifen. Melden Sie sich mit dem folgenden Befehl beim Root-Benutzerkonto an:

aws konfigurieren


Die Ausgabe des Befehls sieht wie folgt aus:


Um einen Benutzer zu erstellen, geben Sie den folgenden Befehl an die CLI ein:

aws ich bin Create-User --Nutzername mfa-Benutzer


Im obigen Befehl: -Nutzername: Ersetze das „mfa-Benutzer“ mit dem IAM-Benutzernamen Ihrer Wahl.

Der Benutzer wurde erfolgreich erstellt. Speichern Sie den ARN des Benutzers, da er später in diesem Abschnitt benötigt wird. Derzeit sind diesem Benutzer keine Berechtigungen zugewiesen:


Um die MFA zu aktivieren, besuchen Sie die AWS-Managementkonsole und suchen Sie nach dem IAM-Dienst. Klicken Sie in den angezeigten Ergebnissen darauf:


Klicken Sie im linken Navigationsbereich des IAM-Dienstes auf die Option „Benutzer“. Klicken Sie im Benutzer-Dashboard auf den Benutzernamen, um die MFA zu konfigurieren:


Tippen Sie auf der nächsten Oberfläche auf „Sicherheitsnachweise“ Möglichkeit:


Scrollen Sie nach unten zum Multi-Faktor-Authentifizierung Abschnitt und klicken Sie auf „MFA-Gerät zuweisen“ Taste:


Zur Verfügung stellen aussagekräftiger Name im Gerätename Textfeld auf der angezeigten Oberfläche:


Scrollen Sie nach unten zum Abschnitt „MFA-Geräte“. Dem Benutzer stehen verschiedene Optionen zur Aktivierung der MFA zur Verfügung, beispielsweise durch Scannen des QR-Codes, über den Sicherheitsschlüssel oder den Hardware-TOTP-Token. Wählen Sie für diese Demo die aus „Authenticator-App“ Möglichkeit:


Tippen Sie auf die 'Nächste' Klicken Sie unten auf der Benutzeroberfläche auf die Schaltfläche, um fortzufahren:


Drücke den „QR-Code anzeigen“ wie im folgenden Bild gezeigt:


Starte den Laden Sie die Anwendung auf Ihrem Mobiltelefon oder Laptop herunter, um den QR-Code zu scannen. Tippen Sie auf die „+“ Option über die Symantec VIP-Schnittstelle:


Im Play Store wird Symantec VIP als VIP Access bezeichnet.

Klicken Sie auf der nächsten Oberfläche von Symantec VIP auf QR-Code scannen Schaltfläche am unteren Rand der Benutzeroberfläche:


Scannen Sie den QR-Code von AWS MFA App-Oberfläche des Authenticators angezeigt. Dieser Code generiert eine Reihe von Codes, die für die Anmeldung bei der IAM-Benutzerkonsole erforderlich sind:


Die Symantec VIP-App wird generiert sechsstelliges OTP nach dem Scannen des QR-Codes. Diese Codes werden weiterhin angezeigt 30 Sekunden . Der folgende Screenshot zeigt die beiden generierten Codes:


Geben Sie die Codes an MFA-Code 1 Und MFA-Code 2 Textfelder auf der Authenticator-App-Oberfläche von MFA. Drücke den „MFA hinzufügen“ Klicken Sie anschließend auf die Schaltfläche, um die Funktionalität zu aktivieren:


Die MFA wurde erfolgreich für den IAM-Benutzer aktiviert. Dies kann durch die überprüft werden „Multi-Faktor-Authentifizierung (MFA)“ Abschnitt der „Sicherheitsnachweise“ Registerkarte des IAM-Benutzer . Speichern Sie in diesem Abschnitt den Wert von Identifier, da er beim Übernehmen der Rolle benötigt wird:

Schritt 2: Richtlinie mit Benutzer verknüpfen

Damit ein Benutzer eine Rolle übernehmen kann, muss der Benutzer in der Lage sein, die IAM-Rolle aufzulisten, um zu bestimmen, welche Rolle er übernehmen soll, und über die Berechtigung zum Übernehmen der Rolle verfügen. Um den Benutzer mit der erforderlichen Berechtigung auszustatten, befolgen Sie die folgenden Schritte von Methode 1 in diesem Tutorial

Schritt 3: Erstellen Sie eine Vertrauensrichtlinie und eine IAM-Rolle

Der nächste Schritt besteht darin, eine Vertrauensrichtlinie zu erstellen, um festzustellen, ob der Benutzer eine vertrauenswürdige Entität ist oder nicht. Diese Vertrauensrichtlinie wird dann an die IAM-Rolle angehängt. Um die Vertrauensrichtlinie und die IAM-Rolle zu erstellen, navigieren Sie zur Eingabeaufforderung und folgen Sie den Anweisungen von Methode 1 in diesem Artikel.

Schritt 4: Erstellen Sie einen Zugriffsschlüssel

Damit der Benutzer autorisiert und authentifiziert werden kann, wird ein Paar Zugriffsschlüssel generiert, die weltweit auf der gesamten AWS-Plattform eindeutig sind. Diese Schlüsselpaare werden zum Zeitpunkt der Anmeldung beim AWS-Konto verwendet. Um die Zugriffsschlüssel für den IAM-Benutzer zu erstellen, befolgen Sie die Anweisungen der Methode 1 in diesem Artikel.

Schritt 5: Anmeldeinformationen konfigurieren

Der AWS-Benutzer kann nur dann auf die AWS-Ressourcen und -Dienste zugreifen, wenn die Anmeldeinformationen korrekt konfiguriert sind. In diesem Abschnitt der Methode konfigurieren wir die Anmeldeinformationen des IAM-Benutzers, indem wir den Zugriffsschlüssel und den geheimen Zugriffsschlüssel für die Befehlszeilenschnittstelle bereitstellen. Befolgen Sie dazu die von Methode 1 dieses Tutorials.

Schritt 6: Übernehmen Sie die IAM-Rolle

Nachdem die IAM-Rolle erfolgreich angehängt und die Trust-Richtlinie implementiert wurde, kann der Benutzer nun die IAM-Rolle übernehmen. Geben Sie zu diesem Zweck den folgenden Befehl an die CLI weiter:

aws iam create-access-key --Nutzername mfa-Benutzer


Hier wurde der Schlüssel erfolgreich für den IAM-Benutzer erstellt. Speichern Sie AccessKeyId und SecretAccessKey, da diese für die Anmeldung beim AWS-Konto erforderlich sind:


Der nächste Schritt besteht darin, die Zugriffsschlüssel innerhalb der AWS CLI zu konfigurieren. Verwenden Sie den unten genannten Befehl zum Konfigurieren der CLI:

aws konfigurieren


Geben Sie der CLI den Zugriffsschlüssel und den geheimen Zugriffsschlüssel für Konfigurationen an:


Um zu überprüfen, ob sich der IAM-Benutzer bei der AWS CLI angemeldet hat, verwenden Sie den folgenden Befehl:

aws sts get-caller-identity


Die Ausgabe des Befehls lautet wie folgt und zeigt an, dass sich der Benutzer erfolgreich bei der AWS-Konsole angemeldet hat:


Der Benutzer hat die Berechtigung, die IAM-Rollen innerhalb des AWS-Kontos aufzulisten. Der unten angegebene Befehl wird verwendet, um die IAM-Rollen aufzulisten:

aws iam list-roles --Abfrage „Roles[?RoleName == 'mfa-role'].[RoleName, Arn]


Im obigen Befehl: Rollenname: Ersetzen Sie in diesem Feld den Wert „mfa-role“ durch den Namen Ihrer IAM-Rolle.

Die Ausgabe des Befehls sieht wie folgt aus:


Um die IAM-Rolle mit MFA zu übernehmen, verwenden Sie den Befehl „Assume Role“ mit zusätzlichen Parametern wie Seriennummer und Token-Code. Geben Sie der CLI den folgenden Befehl an:

aws sts übernimmt die Rolle --role-arn „arn:aws:iam::123456789012:role/m-role“ --role-session-name AWSCLI-Sitzung --Seriennummer „arn:aws:iam::012345678910:mfa/admindevice“ --Token-Code „123456“


Im obigen Befehl:

    • –role-arn: Ersetzen Sie den Wert dieses Feldes durch den ARN Ihrer IAM-Rolle.
    • –Rollensitzungsname: In diesem Feld kann der Benutzer einen beliebigen Sitzungsnamen eingeben.
    • -Seriennummer: Ersetzen Sie den Wert dieses Felds durch den zuvor gespeicherten Bezeichnerwert aus der MFA-Schnittstelle.
    • -Token-Code: Dieser Wert soll durch den aktuellen Code ersetzt werden, der in der Symantec VIP-Oberfläche angezeigt wird.

Der aktuelle Code, der im Symantec VIP angezeigt wird, lautet wie folgt. Derselbe Code wird im –token-code-Wert des Befehls verwendet:


Die Ausgabe des Befehls enthält die temporären Anmeldeinformationen wie ein Sitzungstoken, einen Zugriffsschlüssel, einen geheimen Zugriffsschlüssel usw.:

Schritt 7: Umgebungsvariablen konfigurieren

Die zurückgegebenen Zugriffsschlüssel und das Sitzungstoken werden nun verwendet, um die sitzungsbasierte Anmeldung einzurichten und die Rolle zu übernehmen. Die detaillierte Implementierung zur Konfiguration der Umgebung wird in besprochen von Methode 1.

Abschließende Gedanken

Um eine Rolle mithilfe der CLI zu übernehmen, gibt es drei Methoden: über den STS (Security Token Service), den Parameter –profile oder die MFA (Multi-Factor Authentication). Damit ein Benutzer eine Rolle übernehmen kann, muss zunächst eine Vertrauensrichtlinie eingerichtet werden. Diese Vertrauensrichtlinie bestimmt, ob der Benutzer eine vertrauenswürdige Entität ist oder nicht. Diese Funktionalität ist notwendig, da sie den Sicherheitsbedenken von IT-Experten und Einzelpersonen Rechnung trägt. Darüber hinaus kann der Benutzer die Rolle nur übernehmen, wenn er über die erforderlichen Berechtigungen verfügt.

Wenn ein Benutzer eine Rolle in AWS übernimmt, wird eine sitzungsbasierte Anmeldung erstellt, um dem Benutzer zeitlich begrenzten Zugriff mit den gewünschten Berechtigungen zu gewähren. Es wird ein Token generiert, der nach einer bestimmten Zeit abläuft und der Benutzer daher die Verwaltungsaufgabe nicht mehr mit AWS-Ressourcen ausführen kann. Dieser Artikel bietet eine praktische Implementierung der drei Methoden zur Übernahme einer Rolle in AWS CLI.