Verwalten von Amazon S3 S3-Bucket-Zugriffsberechtigungen - AWS SDK for JavaScript

Helfen Sie uns, dasAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation durch Feedback unter Verwendung derFeedbackLink oder erstellen Sie ein Problem oder ziehen Sie eine Anfrage anGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-API-Referenzbeschreibt ausführlich alle API-Operationen für dieAWS SDK for JavaScriptVersion 3 (V3).

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.

Verwalten von Amazon S3 S3-Bucket-Zugriffsberechtigungen


                        JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • So können Sie die Zugriffskontrollliste für einen Amazon S3-Bucket abrufen oder festlegen

Das Szenario

In diesem Beispiel wird ein Node.js-Modul dazu verwendet, die Bucket-ACL (Access Control List, Zugriffskontrollliste) für einen ausgewählten Bucket anzuzeigen. Darüber hinaus wird beschrieben, wie Änderungen an der ACL für einen ausgewählten Bucket übernommen werden. Das Node.js Modul verwendet das SDK für JavaScript zur Verwaltung von Amazon S3 S3-Bucket-Zugriffsberechtigungen mithilfe dieser Methoden der Amazon S3 S3--Client-Klasse:

Weitere Informationen zu Zugriffskontrolllisten für Amazon S3 S3-Buckets finden Sie unterZugriffsverwaltung mit ACLsimAmazon Simple Storage Service — Benutzerhandbuchaus.

Erforderliche Aufgaben

Zum Einrichten und Ausführen dieses Beispiels müssen Sie zunächst diese Aufgaben abschließen:

Wichtig

Diese Beispiele zeigen, wie Client-Serviceobjekte importiert/exportiert und mit ECMASCRIPT6 (ES6) befehligt werden.

  • Dies erfordert Node.js Version 13.x oder höher. Informationen zum Herunterladen der neuesten Version von Node.js finden Sie unterNode.js Downloads.aus.

  • Wenn Sie die CommonJS-Syntax verwenden möchten, finden Sie unterJavaScript ES6/CommonJS-Syntaxaus.

Abrufen der aktuellen Zugriffskontrollliste des Buckets

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem Dateinamens3Client.jsaus. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das Amazon S3 S3-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion.

import { S3Client} from "@aws-sdk/client-s3"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon S3 service client object. const s3Client = new S3Client({ region: REGION }); export { s3Client };

Dieser Code ist verfügbarhier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen s3_getbucketacl.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren.

Erstellen einesS3ClientClient-Serviceobjekt. Der einzige Parameter, den Sie beim Abrufen der GetBucketAclCommand-Methode weiterleiten müssen, ist der Name des ausgewählten Buckets. Die aktuelle Konfiguration der Zugriffskontrollliste wird von Amazon S3 imdataParameter, der an die Callback-Funktion weitergeleitet wird.

// Import required AWS SDK clients and commands for Node.js import { GetBucketAclCommand } from "@aws-sdk/client-s3"; import { s3Client } from "./libs/s3Client.js"; // Helper function that creates Amazon S3 service client module. // Create the parameters. export const bucketParams = { Bucket: "BUCKET_NAME" }; export const run = async () => { try { const data = await s3Client.send(new GetBucketAclCommand(bucketParams)); console.log("Success", data.Grants); return data; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes bei der Eingabeaufforderung ein.

node s3_getbucketacl.js

Diesen Beispielcode finden Sie hier auf GitHub.

Anhängen von Zugriffskontrolllistenberechtigungen an einen Amazon S3 S3-Bucket

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem Dateinamens3Client.jsaus. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das Amazon S3 S3-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion.

import { S3Client} from "@aws-sdk/client-s3"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon S3 service client object. const s3Client = new S3Client({ region: REGION }); export { s3Client };

Dieser Code ist verfügbarhier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen s3_putbucketacl.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren.

ErsetzenBUCKET_NAMEmit dem Namen des Amazon S3 S3-Buckets. ErsetzenGRANTEE_1undGRANTEE_2mit Benutzern möchten Sie die entsprechende Zugriffsberechtigung erteilen.

/ Import required AWS SDK; clients and commands for Node.js. const { S3Client, PutBucketAclCommand } = require("@aws-sdk/client-s3"); // Set the parameters. const bucketParams = { Bucket: "BUCKET_NAME", // 'GrantFullControl' allows grantee the read, write, read ACP, and write ACP permissions on the bucket. // For example, an AWS account Canonical User ID in the format: // id=002160194XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXa7a49125274 GrantFullControl: "GRANTEE_1", // 'GrantWrite' allows grantee to create, overwrite, and delete any object in the bucket.. // For example, 'uri=http://acs.amazonaws.com/groups/s3/LogDelivery' GrantWrite: "GRANTEE_2" }; // Create an Amazon S3 client service object. const s3 = new S3Client({}); const run = async () => { try { const data = await s3.send(new PutBucketAclCommand(bucketParams)); console.log("Success, permissions added to bucket", data); } catch (err) { console.log("Error", err); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes bei der Eingabeaufforderung ein.

node s3_putbucketacl.js

Diesen Beispielcode finden Sie hier auf GitHub.