2017-12-14 7 views
0

Ich habe versucht, meine erste Lambda-Funktion zu testen, aber ich kann sie nur erfolgreich testen, wenn die Bucket-Richtlinien auf public gesetzt sind. Ich möchte nur Zugriff auf meinen IAM-Benutzer gewähren, aber wenn ich dies versuche, erhalte ich einen Zugriff verweigert-Fehler. Ich bestätige, dass der IAM-Benutzer über Administratorzugriff verfügt.IAM-Benutzer kann nur auf S3-Bucket zugreifen, wenn der Bucket auf public gesetzt ist

unter den relevanten Ausschnitt aus dem Eimer Politik ist, wo ich die Haupt meiner IAM Benutzers ARN gesetzt, die Fehler in der „Zugriff verweigert“ führt:

"Principal": { 
    "AWS": "arn:aws:iam::12_DIGIT_USER_ID:user/adminuser" 
} 

an Öffentlichkeit die Haupt einstellen, wie unten, ermöglicht das Lambda erfolgreich auszuführen:

"Principal": { 
    "AWS": "*" 
} 

klar will ich einen öffentlichen Eimer zu vermeiden, und die Lösung jede Blog-Post und Stackoverflow Frage nach scheint zu sein, den Eimer Politik ähnlich den ersten Codeausschnitt oben zu setzen, aber ich absolut kann nicht herausfinden, warum es nicht für mich funktioniert. Jede Hilfe würde sehr geschätzt werden.

+1

Ich denke, dass Sie über eine IAM-Rolle ausgeführt werden e (Ausführungsrolle) Wenn dies der Fall ist, können Sie der Rolle einfach die erforderliche Berechtigung über die IAM-Richtlinie erteilen und müssen die Bucket-Richtlinie nicht verwenden. Wenn Sie die Bucket-Richtlinie weiterhin verwenden möchten, welche API den Zugriff verweigert hat und was die vollständige Bucket-Richtlinie ist? – sudo

Antwort

2

Problem ist, dass Sie zwischen Benutzer- und Ressourcenberechtigungen verwirren.

Sie müssen nur Ressource zu Ressourcenberechtigungen als eine Richtlinie festlegen, weisen Sie es Rolle mit vertrauenswürdiger Beziehung mit Lambda.amazonaws.com und dann diese Rolle Lambda-Funktion zuweisen.

enter image description here

enter image description here

Hoffe, es hilft.

1

Wenn die Erlaubnis gewähren Ressourcen in Amazon S3 zugreifen:

  • Wenn Sie möchten, den Zugang der Öffentlichkeit zu gewähren, verwenden Sie eine Bucket Politik auf den heißen Stein selbst
  • Wenn Sie Berechtigungen erteilen zu spezifischen Wunsch Benutzer oder Gruppen von Benutzern, dann fügen Sie die Berechtigungen direkt zu dem Benutzer/der Gruppe innerhalb IAM hinzu (principal erforderlich)
Verwandte Themen