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:
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.