Amazon-S3-Buckets - Forschungs- und Ingenieurstudio

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.

Amazon-S3-Buckets

Mounten Sie einen Amazon S3 S3-Bucket

Research and Engineering Studio (RES) unterstützt das Mounten von Amazon S3 S3-Buckets auf Linux Virtual Desktop Infrastructure (VDI) -Instances. RES-Administratoren können S3-Buckets in RES integrieren, sie an Projekte anhängen, ihre Konfiguration bearbeiten und Buckets auf der Registerkarte S3-Buckets unter Environment Management entfernen.

Das S3-Buckets-Dashboard bietet eine Liste der integrierten S3-Buckets, die Ihnen zur Verfügung stehen. Über das S3-Buckets-Dashboard können Sie:

  1. Verwenden Sie Bucket hinzufügen, um einen S3-Bucket in RES zu integrieren.

  2. Wählen Sie einen S3-Bucket aus und verwenden Sie das Aktionsmenü, um:

    • Bearbeiten Sie einen Bucket

    • Einen Bucket entfernen

  3. Verwenden Sie das Suchfeld, um nach dem Bucket-Namen zu suchen und integrierte S3-Buckets zu finden.

    In der S3-Buckets-Liste können Sie nach dem Bucket-Namen suchen und integrierte Buckets finden

Einen Amazon S3 S3-Bucket hinzufügen

So fügen Sie Ihrer RES-Umgebung einen S3-Bucket hinzu:
  1. Wählen Sie Add bucket (Bucket hinzufügen) aus.

  2. Geben Sie die Bucket-Details wie Bucket-Name, ARN und Bereitstellungspunkt ein.

    Wichtig
    • Der bereitgestellte Bucket ARN, der Bereitstellungspunkt und der bereitgestellte Modus können nach der Erstellung nicht geändert werden.

    • Der Bucket-ARN kann ein Präfix enthalten, das den integrierten S3-Bucket von diesem Präfix isoliert.

  3. Wählen Sie einen Modus aus, in dem Sie Ihren Bucket einbinden möchten.

    Wichtig
    • Weitere Informationen Datenisolierung zur Datenisolierung mit bestimmten Modi finden Sie unter.

  4. Unter Erweiterte Optionen können Sie einen IAM-Rollen-ARN angeben, um die Buckets für den kontoübergreifenden Zugriff bereitzustellen. Folgen Sie den Schritten unterKontoübergreifender Bucket-Zugriff, um die erforderliche IAM-Rolle für den kontoübergreifenden Zugriff zu erstellen.

  5. (Optional) Ordnen Sie den Bucket Projekten zu, die später geändert werden können. Ein S3-Bucket kann jedoch nicht in die vorhandenen VDI-Sitzungen eines Projekts eingebunden werden. Nur Sitzungen, die gestartet werden, nachdem das Projekt dem Bucket zugeordnet wurde, werden den Bucket mounten.

  6. Wählen Sie Absenden aus.

Einen Amazon S3 S3-Bucket bearbeiten

  1. Wählen Sie einen S3-Bucket in der S3-Buckets-Liste aus.

  2. Wählen Sie im Menü Aktionen die Option Bearbeiten.

  3. Geben Sie Ihre Aktualisierungen ein.

    Wichtig
    • Wenn Sie ein Projekt einem S3-Bucket zuordnen, wird der Bucket nicht in die vorhandenen VDI-Instanzen (Virtual Desktop Infrastructure) dieses Projekts eingebunden. Der Bucket wird nur für VDI-Sitzungen bereitgestellt, die in einem Projekt gestartet werden, nachdem der Bucket diesem Projekt zugeordnet wurde.

    • Das Trennen eines Projekts von einem S3-Bucket hat keine Auswirkungen auf die Daten im S3-Bucket, führt jedoch dazu, dass Desktop-Benutzer den Zugriff auf diese Daten verlieren.

  4. Wählen Sie Bucket-Setup speichern.

    Die Seite „S3-Bucket bearbeiten“ mit den eingegebenen Feldern für Anzeigename und Projektverknüpfung und markierter Schaltfläche „Bucket-Setup speichern“

Einen Amazon S3 S3-Bucket entfernen

  1. Wählen Sie einen S3-Bucket in der S3-Buckets-Liste aus.

  2. Wählen Sie im Menü Aktionen die Option Entfernen aus.

    Wichtig
    • Sie müssen zuerst alle Projektzuordnungen aus dem Bucket entfernen.

    • Der Entfernungsvorgang hat keine Auswirkungen auf die Daten im S3-Bucket. Es entfernt nur die Zuordnung des S3-Buckets zu RES.

    • Wenn Sie einen Bucket entfernen, verlieren bestehende VDI-Sitzungen nach Ablauf der Anmeldeinformationen dieser Sitzung (~1 Stunde) den Zugriff auf den Inhalt dieses Buckets.

Datenisolierung

Wenn Sie RES einen S3-Bucket hinzufügen, haben Sie die Möglichkeit, die Daten innerhalb des Buckets für bestimmte Projekte und Benutzer zu isolieren. Auf der Seite Bucket hinzufügen können Sie den Modus Schreibgeschützt (R) oder Lesen und Schreiben (R/W) wählen.

Nur lesen

Wenn ausgewählt, Read Only (R) wird die Datenisolierung basierend auf dem Präfix des Bucket-ARN (Amazon Resource Name) erzwungen. Wenn ein Administrator beispielsweise mithilfe des ARN einen Bucket zu RES hinzufügt arn:aws:s3:::bucket-name/example-data/ und diesen Bucket mit Projekt A und Projekt B verknüpft, können Benutzer, die von Projekt A und Projekt B VDIs aus starten, nur die Daten lesen, die sich bucket-name unter dem Pfad befinden/example-data. Sie haben keinen Zugriff auf Daten außerhalb dieses Pfads. Wenn dem Bucket-ARN kein Präfix angehängt wird, wird der gesamte Bucket für jedes damit verknüpfte Projekt verfügbar gemacht.

Lesen und Schreiben

Wenn diese Option ausgewählt Read and Write (R/W) ist, wird die Datenisolierung weiterhin auf der Grundlage des Präfix des Bucket-ARN erzwungen, wie oben beschrieben. Dieser Modus bietet zusätzliche Optionen, mit denen Administratoren variablenbasierte Präfixe für den S3-Bucket angeben können. Wenn diese Option ausgewählt Read and Write (R/W) ist, wird ein Abschnitt Benutzerdefiniertes Präfix verfügbar, der ein Dropdownmenü mit den folgenden Optionen bietet:

  • Kein benutzerdefiniertes Präfix

  • /%p

  • /%p/%u

Keine benutzerdefinierte Datenisolierung

Wenn die Option Benutzerdefiniertes Präfix ausgewählt No custom prefix ist, wird der Bucket ohne benutzerdefinierte Datenisolierung hinzugefügt. Dadurch können alle mit dem Bucket verknüpften Projekte Lese- und Schreibzugriff haben. Wenn ein Administrator beispielsweise mithilfe des ARN arn:aws:s3:::bucket-name mit No custom prefix selected einen Bucket zu RES hinzufügt und diesen Bucket mit Projekt A und Projekt B verknüpft, haben Benutzer, die von Projekt A und Projekt B VDIs aus starten, uneingeschränkten Lese- und Schreibzugriff auf den Bucket.

Datenisolierung auf Projektebene

Wenn diese Option für Benutzerdefiniertes Präfix ausgewählt /%p ist, werden die Daten im Bucket für jedes spezifische Projekt isoliert, das dem Bucket zugeordnet ist. Die %p Variable steht für den Projektcode. Wenn ein Administrator beispielsweise einen Bucket zu RES hinzufügt, indem er den ARN arn:aws:s3:::bucket-name mit /%p selected und einem Mount-Point von /bucket verwendet und diesen Bucket mit Projekt A und Projekt B verknüpft, kann Benutzer A in Projekt A eine Datei schreiben/bucket. Benutzer B in Projekt A kann auch die Datei sehen, in die Benutzer A geschrieben hat/bucket. Wenn Benutzer B jedoch einen VDI in Projekt B startet und hineinschaut/bucket, wird er die Datei, die Benutzer A geschrieben hat, nicht sehen, da die Daten nach Projekten isoliert sind. Die Datei, die Benutzer A geschrieben hat, befindet sich im S3-Bucket unter dem Präfix, /ProjectA während Benutzer B nur darauf zugreifen kann, /ProjectB wenn er sie VDIs von Projekt B aus verwendet.

Datenisolierung auf Projekt- und Benutzerebene

Wenn die Option Benutzerdefiniertes Präfix ausgewählt /%p/%u ist, werden die Daten im Bucket für jedes spezifische Projekt und jeden Benutzer, der diesem Projekt zugeordnet ist, isoliert. Die %p Variable stellt den Projektcode und den Benutzernamen %u dar. Ein Administrator fügt beispielsweise einen Bucket zu RES hinzu, indem er den ARN arn:aws:s3:::bucket-name mit /%p/%u selected und dem Mount-Point von verwendet/bucket. Dieser Bucket ist mit Projekt A und Projekt B verknüpft. Benutzer A in Projekt A kann eine Datei schreiben/bucket. Im Gegensatz zum vorherigen Szenario, bei dem es nur um %p Isolation ging, kann Benutzer B in diesem Fall die Datei, in die Benutzer A geschrieben hat, nicht sehen/bucket, da die Daten sowohl vom Projekt als auch vom Benutzer isoliert sind. Die Datei, die Benutzer A geschrieben hat, befindet sich im S3-Bucket unter dem Präfix, /ProjectA/UserA während Benutzer B nur darauf zugreifen kann/ProjectA/UserB, wenn er sie VDIs in Projekt A verwendet.

Kontoübergreifender Bucket-Zugriff

RES ist in der Lage, Buckets von anderen AWS Konten aus zu mounten, sofern diese Buckets über die richtigen Berechtigungen verfügen. Im folgenden Szenario möchte eine RES-Umgebung in Konto A einen S3-Bucket in Konto B bereitstellen.

Schritt 1: Erstellen Sie eine IAM-Rolle in dem Konto, in dem RES bereitgestellt wird (dies wird als Konto A bezeichnet):
  1. Melden Sie sich bei der AWS Management Console für das RES-Konto an, das Zugriff auf den S3-Bucket benötigt (Konto A).

  2. Öffnen Sie die IAM-Konsole:

    1. Navigieren Sie zum IAM-Dashboard.

    2. Klicken Sie im Navigationsbereich auf Policies (Richtlinien).

  3. Erstellen Sie eine Richtlinie:

    1. Wählen Sie Richtlinie erstellen.

    2. Wählen Sie den Tab JSON.

    3. Fügen Sie die folgende JSON-Richtlinie ein (<BUCKET-NAME>ersetzen Sie sie durch den Namen des S3-Buckets in Konto B):

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::<BUCKET-NAME>", "arn:aws:s3:::<BUCKET-NAME>/*" ] } ] }
    4. Klicken Sie auf Weiter.

  4. Überprüfen und erstellen Sie die Richtlinie:

    1. Geben Sie einen Namen für die Richtlinie ein (z. B. AccessPolicy „S3“).

    2. Fügen Sie eine optionale Beschreibung hinzu, um den Zweck der Richtlinie zu erläutern.

    3. Überprüfen Sie die Richtlinie und wählen Sie Richtlinie erstellen aus.

  5. Öffnen Sie die IAM-Konsole:

    1. Navigieren Sie zum IAM-Dashboard.

    2. Wählen Sie im Navigationsbereich die Option Roles (Rollen) aus.

  6. Eine Rolle erstellen:

    1. Wählen Sie Create rule (Regel erstellen) aus.

    2. Wählen Sie Benutzerdefinierte Vertrauensrichtlinie als Typ der vertrauenswürdigen Entität aus.

    3. Fügen Sie die folgende JSON-Richtlinie ein (<ACCOUNT_ID>ersetzen Sie sie durch die tatsächliche Konto-ID von Konto A, <ENVIRONMENT_NAME> durch den Umgebungsnamen der RES-Bereitstellung und <REGION> durch die AWS Region, in der RES bereitgestellt wird):

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<ACCOUNT_ID>:role/<ENVIRONMENT_NAME>-custom-credential-broker-lambda-role-<REGION>" }, "Action": "sts:AssumeRole" } ] }
    4. Wählen Sie „Weiter“.

  7. Berechtigungsrichtlinien anhängen:

    1. Suchen Sie nach der Richtlinie, die Sie zuvor erstellt haben, und wählen Sie sie aus.

    2. Wählen Sie „Weiter“.

  8. Markieren, überprüfen und erstellen Sie die Rolle:

    1. Geben Sie einen Rollennamen ein (z. B. AccessRole „S3“).

    2. Wählen Sie unter Schritt 3 die Option Tag hinzufügen aus und geben Sie dann den folgenden Schlüssel und Wert ein:

      • Schlüssel: res:Resource

      • Wert: s3-bucket-iam-role

    3. Überprüfen Sie die Rolle und wählen Sie Rolle erstellen aus.

  9. Verwenden Sie die IAM-Rolle in RES:

    1. Kopieren Sie den von Ihnen erstellten IAM-Rollen-ARN.

    2. Melden Sie sich bei der RES-Konsole an.

    3. Wählen Sie im linken Navigationsbereich S3 Bucket aus.

    4. Wählen Sie Bucket hinzufügen und füllen Sie das Formular mit dem kontoübergreifenden S3-Bucket-ARN aus.

    5. Wählen Sie das Drop-down-Menü Erweiterte Einstellungen — optional aus.

    6. Geben Sie den Rollen-ARN in das Feld IAM-Rollen-ARN ein.

    7. Wählen Sie Bucket hinzufügen aus.

Schritt 2: Ändern Sie die Bucket-Richtlinie in Konto B
  1. Melden Sie sich bei der AWS Management Console für Konto B an.

  2. Öffnen Sie die S3-Konsole:

    1. Navigieren Sie zum S3-Dashboard.

    2. Wählen Sie den Bucket aus, für den Sie Zugriff gewähren möchten.

  3. Bearbeiten Sie die Bucket-Richtlinie:

    1. Wählen Sie den Tab „Berechtigungen“ und dann „Bucket-Richtlinie“.

    2. Fügen Sie die folgende Richtlinie hinzu, um der IAM-Rolle von Konto A aus Zugriff auf den Bucket zu gewähren (<AccountA_ID>ersetzen Sie ihn durch die tatsächliche Konto-ID von Konto A und <BUCKET-NAME> durch den Namen des S3-Buckets):

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/S3AccessRole" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::<BUCKET-NAME>", "arn:aws:s3:::<BUCKET-NAME>/*" ] } ] }
    3. Wählen Sie Save (Speichern).

Verhinderung der Datenexfiltration in einer privaten VPC

Um zu verhindern, dass Benutzer Daten aus sicheren S3-Buckets in ihre eigenen S3-Buckets in ihrem Konto exfiltrieren, können Sie einen VPC-Endpunkt anhängen, um Ihre private VPC zu sichern. Die folgenden Schritte zeigen, wie Sie einen VPC-Endpunkt für den S3-Dienst erstellen, der den Zugriff auf S3-Buckets in Ihrem Konto sowie auf alle zusätzlichen Konten mit kontoübergreifenden Buckets unterstützt.

  1. Öffnen Sie die Amazon VPC-Konsole:

    1. Melden Sie sich bei der AWS Management Console an.

    2. Öffnen Sie die Amazon VPC-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Erstellen Sie einen VPC-Endpunkt für S3:

    1. Wählen Sie im linken Navigationsbereich Endpoints aus.

    2. Wählen Sie Endpunkt erstellen aus.

    3. Stellen Sie sicher, dass bei Servicekategorie die Option AWS Services ausgewählt ist.

    4. Geben Sie im Feld Dienstname „S3“ ein com.amazonaws.<region>.s3 (<region>ersetzen Sie es durch Ihre AWS Region) oder suchen Sie danach.

    5. Wählen Sie den S3-Dienst aus der Liste aus.

  3. Endpunkteinstellungen konfigurieren:

    1. Wählen Sie für VPC die VPC aus, in der Sie den Endpunkt erstellen möchten.

    2. Wählen Sie für Subnetze beide privaten Subnetze aus, die während der Bereitstellung für die VDI-Subnetze verwendet wurden.

    3. Stellen Sie sicher, dass die Option „DNS-Name aktivieren“ aktiviert ist. Dadurch kann der private DNS-Hostname in die Endpunkt-Netzwerkschnittstellen aufgelöst werden.

  4. Konfigurieren Sie die Richtlinie zur Zugriffsbeschränkung:

    1. Wählen Sie unter Richtlinie die Option Benutzerdefiniert aus.

    2. Geben Sie im Richtlinieneditor eine Richtlinie ein, die den Zugriff auf Ressourcen in Ihrem Konto oder einem bestimmten Konto einschränkt. Hier ist ein Beispiel für eine Richtlinie (mybucketersetzen Sie sie durch Ihren S3-Bucket-Namen 111122223333 und 444455556666 durch das entsprechende AWS Konto IDs , auf das Sie zugreifen möchten):

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::mybucket", "arn:aws:s3:::mybucket/*" ], "Condition": { "StringEquals": { "aws:PrincipalAccount": [ "111122223333", // Your Account ID "444455556666" // Another Account ID ] } } } ] }
  5. Erstellen Sie den Endpunkt:

    1. Überprüfen Sie die Einstellungen.

    2. Wählen Sie Endpunkt erstellen aus.

  6. Überprüfen Sie den Endpunkt:

    1. Sobald der Endpunkt erstellt wurde, navigieren Sie in der VPC-Konsole zum Abschnitt Endpoints.

    2. Wählen Sie den neu erstellten Endpunkt aus.

    3. Stellen Sie sicher, dass der Status verfügbar ist.

Indem Sie diese Schritte ausführen, erstellen Sie einen VPC-Endpunkt, der S3-Zugriff ermöglicht, der auf Ressourcen innerhalb Ihres Kontos oder einer bestimmten Konto-ID beschränkt ist.

Fehlerbehebung

Wie überprüft man, ob ein Bucket nicht auf einem VDI bereitgestellt werden kann

Wenn ein Bucket nicht auf einem VDI bereitgestellt werden kann, gibt es einige Stellen, an denen Sie nach Fehlern suchen können. Gehen Sie wie folgt vor.

  1. Überprüfen Sie die VDI-Protokolle:

    1. Melden Sie sich bei der AWS Management Console an.

    2. Öffnen Sie die EC2 Konsole und navigieren Sie zu Instances.

    3. Wählen Sie die VDI-Instanz aus, die Sie gestartet haben.

    4. Stellen Sie über den Session Manager eine Connect zum VDI her.

    5. Führen Sie die folgenden Befehle aus:

      sudo su cd ~/bootstrap/logs

      Hier finden Sie die Bootstrap-Protokolle. Die Details eines Fehlers finden Sie in der configure.log.{time} Datei.

      Weitere Informationen finden Sie außerdem im /etc/message Protokoll.

  2. Überprüfen Sie die CloudWatch Lambda-Protokolle von Custom Credential Broker:

    1. Melden Sie sich bei der AWS Management Console an.

    2. Öffnen Sie die CloudWatch Konsole und navigieren Sie zu Protokollgruppen.

    3. Suchen Sie nach der Protokollgruppe/aws/lambda/<stack-name>-vdc-custom-credential-broker-lambda.

    4. Untersuchen Sie die erste verfügbare Protokollgruppe und suchen Sie nach Fehlern in den Protokollen. Diese Protokolle enthalten Details zu potenziellen Problemen bei der Bereitstellung temporärer benutzerdefinierter Anmeldeinformationen für das Mounten von S3-Buckets.

  3. Überprüfen Sie die benutzerdefinierten Credential Broker CloudWatch API-Gateway-Protokolle:

    1. Melden Sie sich bei der AWS Management Console an.

    2. Öffnen Sie die CloudWatch Konsole und navigieren Sie zu Protokollgruppen.

    3. Suchen Sie nach der Protokollgruppe<stack-name>-vdc-custom-credential-broker-lambdavdccustomcredentialbrokerapigatewayaccesslogs<nonce>.

    4. Untersuchen Sie die erste verfügbare Protokollgruppe und suchen Sie nach Fehlern in den Protokollen. Diese Protokolle enthalten Details zu allen Anfragen und Antworten an das API Gateway für benutzerdefinierte Anmeldeinformationen, die für das Mounten der S3-Buckets erforderlich sind.

Wie bearbeitet man die IAM-Rollenkonfiguration eines Buckets nach dem Onboarding

  1. Melden Sie sich bei der AWS DynamoDB-Konsole an.

  2. Wählen Sie die Tabelle aus:

    1. Wählen Sie im linken Navigationsbereich Tabellen aus.

    2. Suchen und wählen Sie<stack-name>.cluster-settings.

  3. Scannen Sie die Tabelle:

    1. Wählen Sie Tabellenelemente durchsuchen aus.

    2. Stellen Sie sicher, dass Scannen ausgewählt ist.

  4. Einen Filter hinzufügen:

    1. Wählen Sie Filter aus, um den Bereich für den Filtereintrag zu öffnen.

    2. Stellen Sie den Filter so ein, dass er Ihrem Schlüssel entspricht

      • Attribut: Geben Sie den Schlüssel ein.

      • Bedingung: Wählen Sie Beginnt mit.

      • Wert: Geben shared-storage.<filesystem_id>.s3_bucket.iam_role_arn Sie replace <filesystem_id> mit dem Wert des Dateisystems ein, das geändert werden muss.

  5. Führen Sie den Scan aus:

    Wählen Sie Ausführen, um den Scan mit dem Filter auszuführen.

  6. Überprüfen Sie den Wert:

    Wenn der Eintrag vorhanden ist, stellen Sie sicher, dass der Wert mit dem richtigen IAM-Rollen-ARN korrekt festgelegt ist.

    Wenn der Eintrag nicht existiert:

    1. Wählen Sie Element erstellen aus.

    2. Geben Sie die Artikeldetails ein:

      • Geben Sie für das identifizierende Attribut einshared-storage.<filesystem_id>.s3_bucket.iam_role_arn.

      • Fügen Sie den richtigen IAM-Rollen-ARN hinzu.

    3. Wählen Sie Speichern aus, um das Element hinzuzufügen.

  7. Starten Sie die VDI-Instanzen neu:

    Starten Sie die Instance neu, um sicherzustellen VDIs , dass diejenigen, die von der falschen IAM-Rolle betroffen ARN, erneut bereitgestellt werden.

Wird aktiviert CloudTrail

Um die Aktivierung CloudTrail in Ihrem Konto über die CloudTrail Konsole vorzunehmen, folgen Sie den Anweisungen unter Erstellen eines Trails mit der CloudTrail Konsole im AWS CloudTrail Benutzerhandbuch. CloudTrail protokolliert den Zugriff auf S3-Buckets, indem die IAM-Rolle aufgezeichnet wird, die darauf zugegriffen hat. Dies kann mit einer Instanz-ID verknüpft werden, die mit einem Projekt oder Benutzer verknüpft ist.