Erstellen einer IAM-Rolle und -Richtlinie - AWS Transfer Family

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen einer IAM-Rolle und -Richtlinie

In diesem Thema werden die Arten von Richtlinien und Rollen beschrieben, die mit verwendet werden können AWS Transfer Family, und es werden Schritte zum Erstellen einer Benutzerrolle erläutert. Außerdem wird beschrieben, wie Sitzungsrichtlinien funktionieren, und eine Beispielbenutzerrolle bereitgestellt.

AWS Transfer Family verwendet die folgenden Rollentypen:

  • Benutzerrolle – Ermöglicht serviceverwalteten Benutzern den Zugriff auf die erforderlichen Transfer Family-Ressourcen. AWS Transfer Family übernimmt diese Rolle im Kontext eines Transfer Family-Benutzer-ARN.

  • Zugriffsrolle – Bietet nur Zugriff auf die Amazon S3-Dateien, die übertragen werden. Bei eingehenden AS2-Übertragungen verwendet die Zugriffsrolle den Amazon-Ressourcennamen (ARN) für die Vereinbarung. Bei ausgehenden AS2-Übertragungen verwendet die Zugriffsrolle den ARN für den Konnektor.

  • Aufrufrolle – Zur Verwendung mit Amazon API Gateway als benutzerdefiniertem Identitätsanbieter des Servers. Transfer Family übernimmt diese Rolle im Kontext eines Transfer Family-Server-ARN.

  • Protokollierungsrolle – Wird verwendet, um Einträge in Amazon anzumelden CloudWatch. Transfer Family verwendet diese Rolle, um Erfolgs- und Fehlerdetails zusammen mit Informationen zu Dateiübertragungen zu protokollieren. Transfer Family übernimmt diese Rolle im Kontext eines Transfer Family-Server-ARN. Für ausgehende AS2-Übertragungen verwendet die Protokollierungsrolle den Konnektor-ARN.

  • Ausführungsrolle – Ermöglicht es einem Benutzer von Transfer Family, Workflows aufzurufen und zu starten. Transfer Family übernimmt diese Rolle im Kontext eines Transfer Family-Workflow-ARN.

Zusätzlich zu diesen Rollen können Sie auch Sitzungsrichtlinien verwenden. Eine Sitzungsrichtlinie wird verwendet, um den Zugriff bei Bedarf einzuschränken. Beachten Sie, dass diese Richtlinien eigenständig sind: Das heißt, Sie fügen diese Richtlinien nicht zu einer Rolle hinzu. Stattdessen fügen Sie eine Sitzungsrichtlinie direkt zu einem Transfer Family-Benutzer hinzu.

Anmerkung

Wenn Sie einen serviceverwalteten Benutzer der Transfer Family erstellen, können Sie Richtlinie basierend auf dem Basisordner automatisch generieren auswählen. Dies ist eine nützliche Abkürzung, wenn Sie den Benutzerzugriff auf ihre eigenen Ordner beschränken möchten. Außerdem können Sie Details zu Sitzungsrichtlinien und ein Beispiel unter anzeigenFunktionsweise von Sitzungsrichtlinien. Weitere Informationen zu Sitzungsrichtlinien finden Sie auch unter Sitzungsrichtlinien im IAM-Benutzerhandbuch.

Eine Benutzerrolle erstellen

Wenn Sie einen Benutzer erstellen, treffen Sie eine Reihe von Entscheidungen über den Benutzerzugriff. Zu diesen Entscheidungen gehören, auf welche Amazon S3-Buckets oder Amazon-EFS-Dateisysteme der Benutzer zugreifen kann, welche Teile der einzelnen Amazon S3-Buckets und welche Dateien im Dateisystem zugänglich sind und welche Berechtigungen der Benutzer hat (z. B. PUT oder GET).

Um den Zugriff festzulegen, erstellen Sie eine identitätsbasierte AWS Identity and Access Management (IAM)-Richtlinie und -Rolle, die diese Zugriffsinformationen bereitstellen. Im Rahmen dieses Prozesses gewähren Sie Ihrem Benutzer Zugriff auf den Amazon S3-Bucket oder das Amazon-EFS-Dateisystem, das das Ziel oder die Quelle für Dateioperationen ist. Die folgenden grundlegenden Schritte, die im Weiteren detailliert erläutert werden, skizzieren das Verfahren:

Eine Benutzerrolle erstellen
  1. Erstellen Sie eine IAM-Richtlinie für AWS Transfer Family. Dies wird unter beschriebenSo erstellen Sie eine IAM-Richtlinie für AWS Transfer Family.

  2. Erstellen Sie eine IAM-Rolle und fügen Sie die neue IAM-Richtlinie an. Ein Beispiel finden Sie unter Beispiel für eine Lese-/Schreibzugriffsrichtlinie.

  3. Richten Sie eine Vertrauensstellung zwischen AWS Transfer Family und der IAM-Rolle ein. Dies wird unter beschriebenSo stellen Sie eine Vertrauensbeziehung her.

In den folgenden Verfahren wird beschrieben, wie Sie eine IAM-Richtlinie und -Rolle erstellen.

So erstellen Sie eine IAM-Richtlinie für AWS Transfer Family
  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich Policies (Richtlinien) und dann Create policy (Richtlinie erstellen).

  3. Wählen Sie auf der Seite Create Policy (Richtlinie erstellen) die Registerkarte JSON aus.

  4. Ersetzen Sie im daraufhin angezeigten Editor den Inhalt des Editors durch die IAM-Richtlinie, die Sie an die IAM-Rolle anfügen möchten.

    Sie können Lese-/Schreibzugriff gewähren oder Benutzer auf ihr Home-Verzeichnis beschränken. Weitere Informationen finden Sie unter Beispiel für eine Lese-/Schreibzugriffsrichtlinie.

  5. Wählen Sie Richtlinie überprüfen und geben Sie einen Namen und eine Beschreibung für Ihre Richtlinie ein. Wählen Sie dann Richtlinie erstellen aus.

Nun erstellen Sie eine IAM-Rolle und fügen an diese die neue IAM-Richtlinie an.

So erstellen Sie eine IAM-Rolle für AWS Transfer Family
  1. Wählen Sie im Navigationsbereich Roles (Rollen) und dann Create role (Rolle erstellen).

    Stellen Sie auf der Seite Rolle erstellen sicher, dass der -AWS Service ausgewählt ist.

  2. Wählen Sie in der Service-Liste Transfer (Übertragung) und dann Next: Permissions (Weiter: Berechtigungen) aus. Dadurch wird eine Vertrauensstellung zwischen AWS Transfer Family und hergestellt AWS.

  3. Suchen Sie im Abschnitt Berechtigungsrichtlinien anfügen nach der Richtlinie, die Sie gerade erstellt haben, und wählen Sie dann Weiter: Tags aus.

  4. (Optional) Geben Sie einen Schlüssel und einen Wert für ein Tag ein und wählen Sie Next: Review (Weiter: Prüfen) aus.

  5. Geben Sie auf der Seite Review (Prüfen) einen Namen und eine Beschreibung für die neue Rolle ein und wählen Sie dann Create role (Rolle erstellen) aus.

Als Nächstes richten Sie eine Vertrauensstellung zwischen AWS Transfer Family und ein AWS.

So stellen Sie eine Vertrauensbeziehung her
Anmerkung

In unseren Beispielen verwenden wir sowohl als auch ArnLike ArnEquals. Sie sind funktionell identisch, daher können Sie beide verwenden, wenn Sie Ihre Richtlinien erstellen. Transfer Family-Dokumentation verwendet , ArnLike wenn die Bedingung ein Platzhalterzeichen enthält, und , ArnEquals um eine genaue Übereinstimmungsbedingung anzugeben.

  1. Wählen Sie in der IAM-Konsole die von Ihnen eben erstellte Rolle aus.

  2. Wählen Sie auf der Seite Summary (Übersicht) die Option Trust relationships (Vertrauensbeziehungen) und anschließend Edit trust relationship (Vertrauensbeziehung bearbeiten) aus.

  3. Stellen Sie im Editor Vertrauensstellung bearbeiten sicher, dass der Service ist"transfer.amazonaws.com". Die Zugriffsrichtlinie wird im Folgenden angezeigt.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    Wir empfehlen Ihnen, die aws:SourceArn Bedingungsschlüssel aws:SourceAccount und zu verwenden, um sich vor dem Problem des verwirrten Stellvertreters zu schützen. Das Quellkonto ist der Eigentümer des Servers und der Quell-ARN ist der ARN des Benutzers. Beispielsweise:

    "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account_id:user/*" } }

    Sie können die ArnLike Bedingung auch verwenden, wenn Sie auf einen bestimmten Server statt auf einen Server im Benutzerkonto beschränken möchten. Beispielsweise:

    "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/*" } }
    Anmerkung

    Ersetzen Sie in den obigen Beispielen jeden Platzhalter für Benutzereingaben durch Ihre eigenen Informationen.

    Einzelheiten zum Confused-Deputy-Problem und weitere Beispiele finden Sie unter Serviceübergreifende Confused-Deputy-Prävention.

  4. Wählen Sie Vertrauensrichtlinie aktualisieren, um die Zugriffsrichtlinie zu aktualisieren.

Sie haben jetzt eine IAM-Rolle erstellt, die es ermöglicht AWS Transfer Family , - AWS Services in Ihrem Namen aufzurufen. Sie haben der Rolle die IAM-Richtlinie angefügt, die Sie erstellt haben, um Ihrem Benutzer Zugriff zu gewähren. Im Erste Schritte mit AWS Transfer Family Serverendpunkten Abschnitt werden diese Rolle und Richtlinie Ihrem Benutzer oder Ihren Benutzern zugewiesen.

Informationen finden Sie auch unter:

Funktionsweise von Sitzungsrichtlinien

Wenn ein Administrator eine Rolle erstellt, umfasst die Rolle häufig umfassende Berechtigungen, um mehrere Anwendungsfälle oder Teammitglieder abzudecken. Wenn ein Administrator eine Konsolen-URL konfiguriert, kann er die Berechtigungen für die resultierende Sitzung mithilfe einer Sitzungsrichtlinie reduzieren. Wenn Sie beispielsweise eine Rolle mit Lese-/Schreibzugriff erstellen, können Sie eine URL einrichten, die den Zugriff der Benutzer auf ihre Basisverzeichnisse beschränkt.

Sitzungsrichtlinien sind erweiterte Richtlinien, die Sie als Parameter übergeben, wenn Sie programmgesteuert eine temporäre Sitzung für eine Rolle oder einen Benutzer erstellen. Sitzungsrichtlinien sind nützlich, um Benutzer zu sperren, sodass sie nur Zugriff auf Teile Ihres Buckets haben, in denen Objektpräfixe ihren Benutzernamen enthalten. Das folgende Diagramm zeigt, dass die Berechtigungen der Sitzungsrichtlinie die Schnittmenge der Sitzungsrichtlinien und der ressourcenbasierten Richtlinien sowie die Schnittmenge der Sitzungsrichtlinien und identitätsbasierten Richtlinien sind.


                Venn-Diagramm mit Sitzungsrichtlinienberechtigungen. Zeigt, wie effektive Berechtigungen in den Überschneidungen von ressourcenbasierten Richtlinien, identitätsbasierten Richtlinien und Sitzungsrichtlinien liegen.

Weitere Informationen finden Sie unter Sitzungsrichtlinien im IAM-Benutzerhandbuch.

In wird eine Sitzungsrichtlinie nur unterstützt AWS Transfer Family, wenn Sie zu oder von Amazon S3 übertragen werden. Die folgende Beispielrichtlinie ist eine Sitzungsrichtlinie, die den Zugriff von Benutzern auf ihre home Verzeichnisse beschränkt. Beachten Sie Folgendes:

  • Die PutObjectACL Anweisungen GetObjectACL und sind nur erforderlich, wenn Sie den kontoübergreifenden Zugriff aktivieren müssen. Das heißt, Ihr Transfer Family-Server muss auf einen Bucket in einem anderen Konto zugreifen.

  • Die maximale Länge einer Sitzungsrichtlinie beträgt 2048 Zeichen. Weitere Informationen finden Sie im Richtlinienanforderungsparameter für die CreateUser Aktion in der API-Referenz zu .

  • Wenn Ihr Amazon S3-Bucket mit AWS Key Management Service (AWS KMS) verschlüsselt ist, müssen Sie zusätzliche Berechtigungen in Ihrer Richtlinie angeben. Details hierzu finden Sie unter Datenverschlüsselung in Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::${transfer:HomeBucket}" ], "Condition": { "StringLike": { "s3:prefix": [ "${transfer:HomeFolder}/*", "${transfer:HomeFolder}" ] } } }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*" } ] }
Anmerkung

Im vorherigen Richtlinienbeispiel wird davon ausgegangen, dass Benutzer ihre Basisverzeichnisse so eingestellt haben, dass sie einen abschließenden Schrägstrich enthalten, um anzugeben, dass es sich um ein Verzeichnis handelt. Wenn Sie dagegen die eines Benutzers HomeDirectory ohne den abschließenden Schrägstrich festlegen, sollten Sie sie in Ihre Richtlinie aufnehmen.

Beachten Sie in der vorherigen Beispielrichtlinie die Verwendung der transfer:HomeDirectory Richtlinienparameter transfer:HomeBucket, und transfer:HomeFolder. Diese Parameter werden für das festgelegtHomeDirectory, das für den Benutzer konfiguriert ist, wie unter HomeDirectory und beschriebenImplementieren Ihrer API Gateway-Methode. Diese Parameter haben die folgenden Definitionen:

  • Der transfer:HomeBucket Parameter wird durch die erste Komponente von ersetztHomeDirectory.

  • Der transfer:HomeFolder Parameter wird durch die verbleibenden Teile des HomeDirectory Parameters ersetzt.

  • Der transfer:HomeDirectory Parameter hat den führenden Schrägstrich (/) entfernt, sodass er als Teil eines S3-Amazon-Ressourcennamens (ARN) in einer Resource Anweisung verwendet werden kann.

Anmerkung

Wenn Sie logische Verzeichnisse verwenden, d. h. die des Benutzers homeDirectoryType istLOGICAL, werden diese Richtlinienparameter (HomeBucket, HomeDirectoryund HomeFolder) nicht unterstützt.

Angenommen, der für den Benutzer Transfer Family konfigurierte HomeDirectory Parameter ist /home/bob/amazon/stuff/.

  • transfer:HomeBucket ist auf gesetzt/home.

  • transfer:HomeFolder ist auf gesetzt/bob/amazon/stuff/.

  • transfer:HomeDirectory wird zu home/bob/amazon/stuff/.

Die erste "Sid" ermöglicht es dem Benutzer, alle Verzeichnisse aufzulisten, die mit beginnen/home/bob/amazon/stuff/.

Die zweite "Sid"schränkt den - und -getZugriff desput Benutzers auf denselben Pfad ein, /home/bob/amazon/stuff/.

Beispiel für eine Lese-/Schreibzugriffsrichtlinie

Gewähren von Lese-/Schreibzugriff auf den Amazon S3-Bucket

Die folgende Beispielrichtlinie für AWS Transfer Family gewährt Lese-/Schreibzugriff auf Objekte in Ihrem Amazon S3-Bucket.

Beachten Sie Folgendes:

  • Ersetzen Sie DOC-EXAMPLE-BUCKET durch den Namen Ihres Amazon-S3-Buckets.

  • Die PutObjectACL Anweisungen GetObjectACL und sind nur erforderlich, wenn Sie den kontoübergreifenden Zugriff aktivieren müssen. Das heißt, Ihr Transfer Family-Server muss auf einen Bucket in einem anderen Konto zugreifen.

  • Die DeleteObjectVersion Anweisungen GetObjectVersion und sind nur erforderlich, wenn das Versioning für den Amazon S3-Bucket aktiviert ist, auf den zugegriffen wird.

    Anmerkung

    Wenn Sie jemals das Versioning für Ihren Bucket aktiviert haben, benötigen Sie diese Berechtigungen, da Sie das Versioning nur in Amazon S3 aussetzen und nicht vollständig ausschalten können. Weitere Informationen finden Sie unter Nicht versionierte, versionsfähige und Buckets mit ausgesetztem Versioning.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Gewähren von Dateisystemzugriff auf Dateien im Amazon-EFS-Dateisystem

Anmerkung

Zusätzlich zur Richtlinie müssen Sie auch sicherstellen, dass Ihre POSIX-Dateiberechtigungen den entsprechenden Zugriff gewähren. Weitere Informationen finden Sie unter Arbeiten mit Benutzern, Gruppen und Berechtigungen auf Netzwerkdateisystem (NFS)-Ebene im Benutzerhandbuch für Amazon Elastic File System.

Die folgende Beispielrichtlinie gewährt Root-Dateisystemzugriff auf Dateien in Ihrem Amazon-EFS-Dateisystem.

Anmerkung

Ersetzen Sie in den folgenden Beispielen region durch Ihre Region, account-id durch das Konto, in dem sich die Datei befindet, und file-system-id durch die ID Ihres Amazon Elastic File System (Amazon EFS).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RootFileSystemAccess", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientRootAccess", "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id" } ] }

Die folgende Beispielrichtlinie gewährt dem Benutzerdateisystem Zugriff auf Dateien in Ihrem Amazon-EFS-Dateisystem.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UserFileSystemAccess", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id" } ] }