So verwenden Sie AWS IAM Passrorole -Erlaubnis

So verwenden Sie AWS IAM Passrorole -Erlaubnis
In AWS ist eine IAM -Rolle eine AWS -Identität wie ein IAM -Benutzer. AWS IAM Service ist ein sehr komplizierter Service, der, wenn nicht mit Bedacht konfiguriert, zu potenziellen Sicherheitsproblemen führen kann. Sie sind mit Richtlinien verbunden. Es ist nicht an eine einzelne Person gebunden, kann aber von jedem angenommen werden, der es benötigt. Anstelle von langfristigen Anmeldeinformationen (Passwort oder Zugriffsschlüssel) wie ein IAM -Benutzer hat eine IAM -Rolle temporäre Sicherheitsanmeldeinformationen. Wenn ein Benutzer, eine Anwendung oder ein Service Zugriff auf AWS -Ressourcen benötigt, für die sie keine Berechtigungen halten, verwenden sie eine bestimmte Rolle für diesen Zweck. Für diese Aufgabe werden dann temporäre Sicherheitsanmeldeinformationen verwendet.

Was werden wir abdecken??

In diesem Handbuch werden wir sehen. Als spezifisches Beispiel werden wir sehen.

Wichtige Begriffe und Konzepte

AWS -Service -Rolle: Es ist eine Rolle, die von einem Dienst übernommen wird, damit die Aufgaben im Namen des Benutzers oder des Kontoinhabers ausführen können.

AWS -Service -Rolle für eine EC2 -Instanz: Es ist eine Rolle, die von einer Anwendung übernommen wird, die auf einer Amazon EC2 -Instanz ausgeführt wird, um die Aufgaben im Benutzerkonto auszuführen, die von dieser Rolle zulässig sind.

AWS-Service-Linked-Rolle: Es ist eine Rolle, die vordefiniert und direkt an einen AWS-Service beigefügt ist, wie die RDS-Service, die für die Start eines RDS-DB gestartet wird.

Verwenden der PassROL -Berechtigung zum Verbinden einer EC2 -Instanz mit S3

Viele AWS -Dienste benötigen eine Rolle für die Konfiguration und diese Rolle wird vom Benutzer übergeben/verwaltet. Auf diese Weise übernehmen/übernehmen Dienste die Rolle und führen die Aufgaben im Namen des Benutzers aus. Für die meisten Dienste muss die Rolle einmal übergeben werden, während dieser Dienst konfiguriert wird. Ein Benutzer benötigt Berechtigungen für die Übergabe einer Rolle an einen AWS -Dienst. Dies ist aus Sicherheitspunkte eine gute Sache, da die Administratoren steuern können, welche Benutzer eine Rolle an einen Dienst übergeben können. Die Berechtigung „Passroole“ wird von einem Benutzer an seinen IAM -Benutzer, seine Rolle oder die Gruppe erteilt, um eine Rolle an einen AWS -Dienst zu übergeben.

Um das vorherige Konzept auszuarbeiten, berücksichtigen Sie einen Fall, wenn eine Anwendung, die auf einer EC2 -Instanz ausgeführt wird, einen Zugriff auf den S3 -Bucket erfordert. Dafür können wir dieser Instanz eine IAM -Rolle beibringen, damit diese Anwendung die S3 -Genehmigung in der Rolle definiert. Diese Anwendung benötigt die temporären Anmeldeinformationen für Authentifizierungs- und Autorisierungszwecke. EC2 erhält temporäre Sicherheitsanmeldeinformationen, wenn eine Rollenzahl mit der Instanz, die unsere Anwendung ausführt, verknüpft. Diese Anmeldeinformationen werden dann unserer Bewerbung zur Verfügung gestellt, um auf S3 zuzugreifen.

Um einem IAM -Benutzer die Fähigkeit zu gewähren, zum Zeitpunkt der Einführung einer Instanz eine Rolle an den EC2 -Dienst weiterzugeben, brauchen wir drei Dinge:

  1. Eine IAM -Berechtigungsrichtlinie für die Rolle, die den Umfang der Rolle entscheidet.
  2. Eine mit der Rolle verbunden.
  3. Eine IAM -Berechtigungsrichtlinie für den IAM -Benutzer, der die Rollen auflistet, die er übergeben kann.

Lass es uns auf pragmatischere Weise machen. Wir haben einen IAM -Benutzer mit einer begrenzten Erlaubnis. Anschließend fügen wir eine Inline -Richtlinie hinzu, um die EC2 -Instanzen und die Erlaubnis, eine IAM -Rolle an einen Dienst zu übergeben. Dann schaffen wir eine Rolle für S3 Access. Nennen wir es "S3access". Und fügen Sie eine IAM -Richtlinie bei. In dieser Rolle erlauben wir nur das Lesen der S3 -Daten mithilfe der Richtlinie „Amazons3ReadonlyAccess“ mit der AWS verwalteten „Amazons3ReadonlyAccess“.

Schritte zur Erstellung der Rolle

Schritt 1. Klicken Sie aus der IAM -Konsole des Administrators (Root) auf "Rolle" und wählen Sie dann "Rolle erstellen".

Schritt 2. Wählen Sie unter der Seite "Trusted Entity aus auswählen" unter dem Typ „Trusted Entity Type“ „AWS -Dienst“ aus.

Schritt 3. Wählen Sie unter dem „Anwendungsfall“ die Optionsschaltfläche aus, die dem „EC2“ für die „Anwendungsfälle für andere AWS -Dienste“ entspricht:

Schritt 4. Weisen Sie auf der nächsten Seite eine Richtlinie „Amazons3ReadonlyAccess“ zu:

Schritt 5. Geben Sie Ihrer Rolle einen Namen („S3access“ in unserem Fall) einen Namen). Fügen Sie eine Beschreibung für diese Rolle hinzu. Die folgende Trust -Richtlinie wird automatisch mit dieser Rolle erstellt:


"Version": "2012-10-17",
"Stellungnahme": [

"Effekt": "erlauben",
"Aktion": [
"STS: Annahme"
],
"Rektor":
"Service": [
"EC2.Amazonawen.com "
]


]

Schritt 6. Klicken Sie auf "Rolle erstellen", um die Rolle zu erstellen:

IAM -Richtlinie für den Benutzer

Diese Richtlinie gibt dem IAM -Benutzer vollständige EC2.

Schritt 1. Klicken Sie aus der IAM -Konsole auf Richtlinien und dann auf „Richtlinien erstellen“.

Schritt 2. Wählen Sie auf der neuen Seite die Registerkarte JSON und fügen Sie den folgenden Code ein:


"Version": "2012-10-17",
"Stellungnahme": [
"Effekt": "erlauben",
"Aktion": ["EC2:*"],
"Ressource":"*"
,

"Effekt": "erlauben",
"Action": "IAM: PassROLE",
"Ressource": "ARN: AWS: IAM :: Account_ID: Rolle/S3access"
]

Ersetzen Sie den fetten Text “Account_id”Mit der Benutzerkonto -ID.

Schritt 3. (Optional) Geben Sie Tags für Ihre Richtlinie an.

Schritt 4. Setzen Sie einen geeigneten Namen für die Richtlinie (in unserem Fall "IAM-User-Policy") und klicken Sie auf die Schaltfläche „Richtlinien erstellen“ und fügen Sie diese Richtlinie an Ihren IAM-Benutzer bei.

Anbringen der Rolle „S3access“ an die EC2 -Instanz

Jetzt werden wir diese Rolle unserer Instanz beibringen. Wählen Sie Ihre Instanz aus der EC2 -Konsole aus und gehen Sie zu "Aktion> Sicherheit> IAM -Rolle ändern". Wählen Sie auf der neuen Seite die Rolle „S3access“ aus dem Dropdown -Menü und speichern Sie sie.

Überprüfen des Setups

Jetzt werden wir überprüfen, ob unsere EC2 -Instanz auf unseren vom Administrator erstellten S3 -Eimer zugreifen kann. Melden Sie sich in der EC2 -Instanz an und installieren Sie die AWS -CLI -Anwendung. Führen Sie nun den folgenden Befehl in dieser EC2 -Instanz aus:

$ aws s3 ls

Führen Sie den vorherigen Befehl erneut vom IAM -Konto aus, das auf Ihrem lokalen Computer konfiguriert ist. Sie werden feststellen, dass der Befehl erfolgreich in der EC2 -Instanz ausgeführt wird, aber wir haben einen Fehler "Zugriff verweigert" auf der lokalen Maschine:

Der Fehler ist offensichtlich, da wir nur die S3 -Zugriffsberechtigung für die EC2 -Instanz erteilt haben, jedoch nicht dem IAM -Benutzer und einem anderen AWS -Dienst. Eine weitere wichtige Sache zu beachten ist, dass wir den Eimer und seine Objekte nicht öffentlich zugänglich gemacht haben.

Abschluss

In diesem Leitfaden haben wir gezeigt. Wir haben es erfolgreich geschafft, das EC2 mit S3 zu verbinden. Es ist ein sehr wichtiges Konzept, wenn Sie Ihren IAM -Benutzern die geringsten Berechtigungen gewähren.