Der Support für AWS SDK für Java Version 1.x endete am 31. Dezember 2025. Wir empfehlen Ihnen, auf den zu migrieren, AWS SDK for Java 2.x 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.
Zugriffskontrollrichtlinien
AWS Zugriffskontrollrichtlinien ermöglichen es Ihnen, detaillierte Zugriffskontrollen für Ihre Ressourcen festzulegen. AWS Eine Zugriffsrichtlinie besteht aus einer Reihe von Anweisungen, die folgende Form annehmen:
Konto A darf Aktion B auf Ressource C ausführen, wenn Bedingung D gilt.
Wobei Folgendes gilt:
-
A ist der Prinzipal — AWS-Konto Derjenige, der eine Anfrage zum Zugriff auf oder zur Änderung einer Ihrer AWS Ressourcen stellt.
-
B ist die Aktion — Die Art und Weise, wie auf Ihre AWS Ressource zugegriffen oder sie geändert wird, z. B. das Senden einer Nachricht an eine Amazon SQS Warteschlange oder das Speichern eines Objekts in einem Amazon S3 Bucket.
-
C ist die Ressource — Die AWS Entität, auf die der Prinzipal zugreifen möchte, z. B. eine Amazon SQS Warteschlange oder ein darin gespeichertes Objekt Amazon S3.
-
D ist eine Reihe von Bedingungen — Die optionalen Einschränkungen, die angeben, wann dem Prinzipal der Zugriff auf Ihre Ressource gewährt oder verweigert werden soll. Viele ausdrucksstarke Bedingungen sind verfügbar, einige speziell für jeden Service. Beispielsweise können Sie mit Datumsbedingungen den Zugriff auf Ressourcen nur nach oder vor einem bestimmten Zeitpunkt zulassen.
Amazon S3 Beispiel
Das folgende Beispiel zeigt eine Richtlinie, die allen Benutzern den Zugriff auf das Lesen aller Objekte in einem Bucket ermöglicht, den Zugriff auf das Hochladen von Objekten in diesen Bucket jedoch auf zwei bestimmte AWS-Konto s beschränkt (zusätzlich zum Konto des Bucket-Besitzers).
Statement allowPublicReadStatement = new Statement(Effect.Allow) .withPrincipals(Principal.AllUsers) .withActions(S3Actions.GetObject) .withResources(new S3ObjectResource(myBucketName, "*")); Statement allowRestrictedWriteStatement = new Statement(Effect.Allow) .withPrincipals(new Principal("123456789"), new Principal("876543210")) .withActions(S3Actions.PutObject) .withResources(new S3ObjectResource(myBucketName, "*")); Policy policy = new Policy() .withStatements(allowPublicReadStatement, allowRestrictedWriteStatement); AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient(); s3.setBucketPolicy(myBucketName, policy.toJson());
Amazon SQS Beispiel
Richtlinien werden häufig verwendet, um eine Amazon SQS Warteschlange für den Empfang von Nachrichten zu einem Amazon SNS-Thema zu autorisieren.
Policy policy = new Policy().withStatements( new Statement(Effect.Allow) .withPrincipals(Principal.AllUsers) .withActions(SQSActions.SendMessage) .withConditions(ConditionFactory.newSourceArnCondition(myTopicArn))); Map queueAttributes = new HashMap(); queueAttributes.put(QueueAttributeName.Policy.toString(), policy.toJson()); AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); sqs.setQueueAttributes(new SetQueueAttributesRequest(myQueueUrl, queueAttributes));
Amazon SNS-Beispiel
Einige Dienste bieten zusätzliche Bedingungen, die in Policen verwendet werden können. Amazon SNS bietet Bedingungen für die Zulassung oder Ablehnung von Abonnements für SNS-Themen auf der Grundlage des Protokolls (z. B. E-Mail, HTTP, HTTPS Amazon SQS) und des Endpunkts (z. B. E-Mail-Adresse, URL, Amazon SQS ARN) der Anfrage, ein Thema zu abonnieren.
Condition endpointCondition = SNSConditionFactory.newEndpointCondition("*@mycompany.com"); Policy policy = new Policy().withStatements( new Statement(Effect.Allow) .withPrincipals(Principal.AllUsers) .withActions(SNSActions.Subscribe) .withConditions(endpointCondition)); AmazonSNS sns = AmazonSNSClientBuilder.defaultClient(); sns.setTopicAttributes( new SetTopicAttributesRequest(myTopicArn, "Policy", policy.toJson()));