

Die Version AWS SDK für Java 1.x wurde end-of-support am 31. Dezember 2025 erreicht. Wir empfehlen Ihnen, auf den zu migrieren [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html), um weiterhin neue Funktionen, Verfügbarkeitsverbesserungen und Sicherheitsupdates zu erhalten.

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.

# Verwaltung des Zugriffs auf Amazon S3 Buckets mithilfe von Bucket-Richtlinien
<a name="examples-s3-bucket-policies"></a>

Sie können eine *Bucket-Richtlinie* einrichten, abrufen oder löschen, um den Zugriff auf Ihre Amazon S3 Buckets zu verwalten.

## Festlegen einer Bucket-Richtlinie
<a name="set-s3-bucket-policy"></a>

Sie können die Bucket-Richtlinie für einen bestimmten S3-Bucket wie folgt festlegen:
+ Rufen Sie den AmazonS3-Client an `setBucketPolicy` und stellen Sie ihm eine [SetBucketPolicyRequest](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/SetBucketPolicyRequest.html) 
+ Durch direktes Festlegen der Richtlinie unter Verwendung der `setBucketPolicy`-Überladung, die einen Bucket-Namen und einen Richtlinientext (im JSON-Format) entgegen nimmt

 **Importe** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.policy.Policy;
import com.amazonaws.auth.policy.Principal;
```

 **Code** 

```
    s3.setBucketPolicy(bucket_name, policy_text);
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}
```

### Verwenden der Policy-Klasse zum Generieren oder Überprüfen einer Richtlinie
<a name="use-s3-bucket-policy-class"></a>

Wenn Sie `setBucketPolicy` eine Bucket-Richtlinie übergeben, können Sie die folgenden Aufgaben ausführen:
+ Direktes Übergeben der Richtlinie als Zeichenfolge mit Text im JSON-Format
+ Erstellen der Richtlinie mit der [Policy](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/policy/Policy.html)-Klasse

Bei Verwendung der `Policy`-Klasse müssen Sie sich keine Gedanken über die korrekte Formatierung Ihrer Text-Zeichenfolge machen. Sie können die Richtlinie als JSON-Text von der `Policy`-Klasse erhalten, indem Sie die `toJson`-Methode aufrufen.

 **Importe** 

```
import com.amazonaws.auth.policy.Resource;
import com.amazonaws.auth.policy.Statement;
import com.amazonaws.auth.policy.actions.S3Actions;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
```

 **Code** 

```
        new Statement(Statement.Effect.Allow)
                .withPrincipals(Principal.AllUsers)
                .withActions(S3Actions.GetObject)
                .withResources(new Resource(
                        "{region-arn}s3:::" + bucket_name + "/*")));
return bucket_policy.toJson();
```

Die `Policy`-Klasse bietet außerdem eine `fromJson`-Methode, mit der versucht werden kann, eine Richtlinie aus einer übergebenen JSON-Zeichenfolge zu erstellen. Die Methode überprüft die Zeichenfolge und stellt so sicher, dass sich der Text in eine gültige Richtlinienstruktur umwandeln lässt. Sie löst einen Fehler mit einer `IllegalArgumentException` aus, wenn der Richtlinientext ungültig ist.

```
Policy bucket_policy = null;
try {
    bucket_policy = Policy.fromJson(file_text.toString());
} catch (IllegalArgumentException e) {
    System.out.format("Invalid policy text in file: \"%s\"",
            policy_file);
    System.out.println(e.getMessage());
}
```

Mit dieser Technik können Sie eine Richtlinie im Voraus validieren, die Sie aus einer Datei oder anderweitig einlesen.

Das [vollständige Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/SetBucketPolicy.java) finden Sie unter. GitHub

## Abrufen einer Bucket-Richtlinie
<a name="get-s3-bucket-policy"></a>

Um die Richtlinie für einen Amazon S3 Bucket abzurufen, rufen Sie die `getBucketPolicy` Methode des AmazonS3-Clients auf und übergeben Sie ihr den Namen des Buckets, aus dem die Richtlinie abgerufen werden soll.

 **Importe** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
```

 **Code** 

```
  try {
      BucketPolicy bucket_policy = s3.getBucketPolicy(bucket_name);
      policy_text = bucket_policy.getPolicyText();
  } catch (AmazonServiceException e) {
      System.err.println(e.getErrorMessage());
      System.exit(1);
  }
```

Wenn der angegebene Bucket nicht vorhanden ist, Sie nicht darauf zugreifen können oder wenn keine Bucket-Richtlinie eingerichtet ist, wird eine `AmazonServiceException` ausgelöst.

Das [vollständige Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/GetBucketPolicy.java) finden Sie unter. GitHub

## Löschen einer Bucket-Richtlinie
<a name="delete-s3-bucket-policy"></a>

Um eine Bucket-Richtlinie zu löschen, rufen Sie den AmazonS3-Client auf und geben Sie ihm den Bucket-Namen. `deleteBucketPolicy`

 **Importe** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
```

 **Code** 

```
  try {
      s3.deleteBucketPolicy(bucket_name);
  } catch (AmazonServiceException e) {
      System.err.println(e.getErrorMessage());
      System.exit(1);
  }
```

Diese Methode wird auch dann erfolgreich ausgeführt, wenn der Bucket noch nicht über eine Richtlinie verfügt. Wenn Sie den Namen eines Buckets angeben, der noch nicht vorhanden ist oder für den Sie keinen Zugriff haben, wird eine `AmazonServiceException` ausgelöst.

Das [vollständige Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucketPolicy.java) finden Sie unter. GitHub

## Weitere Infos
<a name="more-info"></a>
+  [Überblick über die Sprache der Access Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) im Amazon Simple Storage Service Benutzerhandbuch
+  [Beispiele für Bucket-Richtlinien](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) im Amazon Simple Storage Service Benutzerhandbuch