Ich versuche eine Lambda-Funktion zu schreiben, die von Daten abhängt, die in einem AWS-Datenspeicher (DynamoDB/Redshift/RDS) gespeichert sind. Ich hatte gehofft, dass die Autorisierung dafür von IAM gehandhabt werden könnte - d. H. Wenn ich die Lambda-Funktion unter einer Rolle ausführte, die zum Lesen des Datenspeichers berechtigt war, brauchte ich keine Anmeldeinformationen für den Zugriff anzugeben.AWS-Rolle zum Autorisieren der Lambda-Abfrage des AWS-Datenspeichers verwenden
Jedoch erfordert this code (die Teil eines Beispiels auf "Configuring a Lambda Function to Access Resources in an Amazon VPC" ist) immer noch Benutzername und Kennwort.
Ist es möglich, eine IAM-Rolle zu verwenden, um Lambda zu autorisieren, einen AWS-Datenspeicher abzufragen?
OK - so klingt es wie jedes Nicht-Dynamo-System erfordert Benutzername/Passwort im Code selbst (oder eine Konfigurationsdatei zusammen mit dem Code). Interessant - ist das nicht ein Sicherheitsrisiko? Idealerweise würden wir Elasticache verwenden, da sich die fraglichen Daten langsam ändern und sofortige Konsistenz kein großes Problem darstellt. Das heißt, ich habe (anekdotisch) gehört, dass Elasticache ziemlich teuer ist, was auch ein Problem sein wird. – scubbo
Wenn Sie Ihrem EC2-Server eine IAM-Rolle zuweisen, die den Zugriff auf eine Datenbank ermöglicht, dann kann jeder, der Zugriff auf den EC2-Server erhält, auch auf Ihre Datenbank zugreifen. Wie ist das sicherer als das Speichern der Datenbank-Benutzername/Passwort-Anmeldeinformationen auf dem Server? Und ich empfehle nicht, diese Zugangsdaten in Ihrem Code zu speichern, da dies in der Tat ein Sicherheitsrisiko darstellt. Wenn Sie sich darüber im Klaren sind, sollten Sie den AWS KMS-Dienst verwenden, um Ihre Anmeldeinformationen zu speichern. –
Auch würde ich die anekdotischen Informationen überspringen und direkt zur Quelle gehen. https://aws.amazon.com/elasticache/pricing/ ElastiCache ist möglicherweise etwas teurer als Redis auf einem EC2-Server manuell auszuführen, aber es behandelt viele Verwaltungsaufgaben für Sie. Und es ist definitiv billiger als ein RDBMS auf RDS. Sie sollten sich auch RedisLabs ansehen, wenn der Preis ein Problem darstellt, aber ElastiCache ist im Allgemeinen sicherer, da es vollständig innerhalb Ihrer VPC ausgeführt wird. –