Erste Dinge zuerst, meine Frage ist sehr ähnlich zu dieser , aber da ich kein "Ich auch!" Link, und es ist seit dem 1. Januar unbeantwortet, ich dachte, ich würde hier fragen. Bitte lassen Sie mich wissen, wenn das falsch ist.
OK, also hier ist mein Problem. Ich habe zwei AWS-Konten, nennen wir sie Prod und Audit. In Prod habe ich viele EC2-Instanzen, die alle ihre eigenen spezifischen IAM-Rollen definiert haben. Im Audit habe ich eine Reihe von S3-Buckets.
Ich muss nur mit IAM-Rollen auf die S3-Buckets im Audit-Konto von bestimmten Computern aus zugreifen können, die bestimmte IAM-Rollen im Prod-Konto verwenden.
Ich habe viele Antworten über Gruppenrichtlinien, Ressourcenrichtlinien und die Annahme von Rollen usw. durch IAM-Benutzer gesehen. Aber wie gesagt, ich benutze IAM-Rollen auf EC2-Instanzen, es gibt keine Gruppen, Benutzer usw.
Ich möchte keine Anmeldeinformationen irgendwo auf einer der Instanzen haben, ala AWS Best Practices .
So ist das möglich? Gibt es eine andere sichere Möglichkeit, dies zu tun, ohne Benutzer oder Anmeldeinformationen einzubeziehen? Jede und alle Hilfe sehr geschätzt, danke!
Hinweis:
Die Anwendung, die auf den Prod EC2-Instanzen ausgeführt wird, auf denen ich versuche, den Zugriff auf die Audit S3-Buckets zuzulassen, ist Logstash. Ich habe bestätigt, dass das Setup funktioniert, wenn Protokolle zu Prod S3-Buckets verschoben werden, nur keine. Ich habe auch versucht, eine S3-Eimer-Politik ohne Erfolg dort auch zu verwenden.
Die S3-Bucket-Richtlinie, die ich hinzugefügt habe, lautet wie folgt:
%Vor%Die der IAM-Rolle für die Prod EC2-Instanz angefügte Inline-Richtlinie:
%Vor%Die der IAM-Rolle im Audit-Konto zugeordnete Richtlinie:
%Vor%Ich probiere gerade fluentd / td-agent aus, weil ich denke, dass es sts erlaubt: AssumeRole, was theoretisch das Setup funktionieren lässt.
Dekan
Ja, das ist möglich. Ich glaube, dass Sie dies entweder mithilfe von Rollen oder einer S3-Bucket-Richtlinie tun können. Weitere Informationen finden Sie unter Unterschiede zwischen IAM-Rollen und ressourcenbasierten Richtlinien . welches ein ähnliches S3-Szenario als Beispiel verwendet.
Verwenden von Rollen
Legen Sie im Audit-Konto eine kontoübergreifende Rolle fest
a.) Fügen Sie eine Richtlinie hinzu, die den S3-Buckets entsprechenden Lese- / Schreibzugriff gewährt.
b.) Fügen Sie eine Vertrauensrichtlinie hinzu, die das Produktkonto angibt.
Erstellen oder ändern Sie im Prod-Konto Ihre EC2-Rollen (Instanzprofile)
a.) Ermöglichen Sie Ihren EC2-Instanzen, AssumeRole für die gemeinsame Rolle des Prüfkontos aufzurufen
b.) Ermöglichen Sie Ihren EC2-Instanzen, in S3 zu schreiben (spezifischer Audit-Bucket oder ein Bucket)
Rufen Sie in Ihrer Anwendung sts: AssumeRole auf, um temporäre Anmeldeinformationen zum Schreiben in den S3-Bucket des Prüfkontos abzurufen. Die verschiedenen AWS SDKs haben alle ziemlich einfache, aber leicht unterschiedliche Möglichkeiten, um neue temporäre Anmeldeinformationen von einer Rolle zu erstellen.
Verwenden der S3-Bucket-Richtlinie
Sie können dies auch mithilfe einer Ressourcenrichtlinie in den Buckets des Prüfkontos tun, indem Sie den Zugriff auf das Prod-Konto gewähren, jedoch keinen bestimmten Benutzer im Prod-Konto angeben. Cross-Account-Berechtigungen erteilen an Objekte hochladen, während sichergestellt wird, dass der Bucket-Besitzer die volle Kontrolle hat hat eine Beispiel-Bucket-Richtlinie für ein ähnliches Beispiel. Ein Vorteil dieses Ansatzes besteht darin, dass Ihre Prod-Kontorollen in der Lage sind, direkt in den Bucket zu schreiben, ohne temporäre Berechtigungen von sts: AssumeRole zuerst zu erhalten. Es gibt zwei Dinge zu tun:
Legen Sie im Audit-Konto die S3-Bucket-Richtlinien fest, um den Zugriff auf den Prod-Account zu erlauben. Ihre obige S3-Bucket-Richtlinie sieht für mich OK aus.
Ermöglichen Sie im Prod-Konto, dass die EC2-Instanzprofilrolle in S3 schreibt.
Sie können die von AmazonS3FullAccess verwaltete Richtlinie zum Debuggen ausprobieren, aber Sie werden wahrscheinlich eventuell Ressourcen wie in Ihren Richtlinien angeben möchten.
%Vor%Tags und Links amazon-s3 amazon-web-services amazon-ec2