Best Practice für AWS IAM-Zugriffsschlüssel zur Verwendung mit AWS SDK

Best Practice für AWS IAM-Zugriffsschlüssel zur Verwendung mit AWS SDK

Ich möchte wissen, welche Best Practices große Unternehmen für den programmgesteuerten Zugriff auf mehrere AWS-Dienste verwenden, da mehrere Programme Zugriff auf zwei verschiedene Dienste benötigen. Wie wird das also verwaltet? Haben sie für jedes Programm mehrere Zugriffsschlüssel für zwei verschiedene Dienste erstellt oder einen einzigen, der Zugriff auf alle Dienste ermöglicht?

Antwort1

Best Practice für AWS-Ressourcen wie EC2 / Lambda / etc. ist die Verwendung von IAM-Rollen, detailliertHier. Kurz gesagt, Sie erstellen keinen Benutzer für einen Server, sondern eine Rolle, die der Dienst übernehmen kann und die über einen Satz von Berechtigungen verfügt, der mit dem EC2-Server verknüpft ist.

Dieser Server mit einer Rolle erhält „temporäre“ Anmeldeinformationen, wenn er ausgeführt wird, damit er auf alle Dienste zugreifen kann, die die IAM-Rolle zulässt. Wenn ich „temporär“ sage, sind die dem Dienst zugewiesenen Anmeldeinformationen nur von kurzer Dauer, vielleicht 24 Stunden, aber wenn sie ablaufen, werden neue Anmeldeinformationen ausgestellt. Dies ist normalerweise transparent, es sei denn, Sie schreiben Software, die sie verwendet. In diesem Fall müssen Sie sie gelegentlich überprüfen. Ich habe die Einzelheiten vielleicht nicht ganz genau, aber es ist mehr oder weniger korrekt.

AWS verfügt über vordefinierte Richtlinien, die das Definieren von Rollen erleichtern können.

Sie können beispielsweise eine Rolle definieren, die besagt: „EC2-Server mit dieser Rolle können zu SQS pushen, von SQS pullen, diese eine Lambda-Funktion ausführen“ und alles, was nicht explizit erteilt wird, wird verweigert. Manchmal muss man ein bisschen experimentieren, um die benötigten Berechtigungen herauszufinden. Die geringste Berechtigung ist am besten, damit eine Ressource wie ein EC2-Server, wenn sie kompromittiert wird, keine Administratorrechte für AWS hat und nicht alles löschen oder beispielsweise Krypto-Mining starten kann.

Wenn Sie in einem großen Unternehmen mit AWS-Arbeiten arbeiten, empfehle ich Ihnen, eine AWS-Schulung zu absolvieren. Eine Online-Schulung zum AWS Architect Associate bei einem Anbieter wie Cloud Guru ist das Mindeste, was Sie benötigen. AWS ist komplex. Ich arbeite seit Jahren Vollzeit bei AWS, aber ich lerne jeden Tag etwas Neues.

Antwort2

Zunächst benötigen Sie vordefinierte Zugriffsrichtlinien für Ressourcen (wie SQS, EC2, ElastiCache usw.). Danach können Sie Benutzer mit programmgesteuertem Zugriff hinzufügen und Anmeldeinformationen auf sichere Weise speichern oder Rollen verwenden, um sie Diensten für den Zugriff zuzuweisen. Beispiel: Erstellen Sie eine IAM-Rolle für den Zugriff auf RDS und weisen Sie sie der EC2-Instanz zu. Versuchen Sie dann, von der EC2-Instanz aus auf unsere Datenbank zuzugreifen.

verwandte Informationen