Utilizzo delle policy per i bucket di Amazon S3 - AWS SDK for JavaScript

Abbiamo annunciato l'imminente uscita end-of-support per la AWS SDK for JavaScript v2. Ti consigliamo di migrare alla AWS SDK for JavaScript v3. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo delle policy per i bucket di Amazon S3

JavaScript code example that applies to Node.js execution

Questo esempio di codice di Node.js illustra:

  • Come recuperare la policy sui bucket di un bucket Amazon S3.

  • Come aggiungere o aggiornare la policy sui bucket di un bucket Amazon S3.

  • Come eliminare la policy sui bucket di un bucket Amazon S3.

Lo scenario

In questo esempio, una serie di moduli Node.js vengono utilizzati per recuperare, impostare o eliminare una policy bucket su un bucket Amazon S3. I moduli Node.js utilizzano l'SDK per JavaScript configurare la policy per un bucket Amazon S3 selezionato utilizzando questi metodi della classe client Amazon S3:

Per ulteriori informazioni sulle policy dei bucket per i bucket Amazon S3, consulta Using Bucket Policies and User Policies nella Amazon Simple Storage Service User Guide.

Attività prerequisite

Per configurare ed eseguire questo esempio, è necessario completare queste attività:

Configurazione dell'SDK

Configura l'SDK per JavaScript creando un oggetto di configurazione globale, quindi impostando la regione per il codice. Nell'esempio, la regione è impostata su us-west-2.

// Load the SDK for JavaScript var AWS = require('aws-sdk'); // Set the Region AWS.config.update({region: 'us-west-2'});

Recupero della policy dei bucket attuale

Crea un modulo Node.js con il nome del file s3_getbucketpolicy.js. Il modulo richiede un singolo argomento della riga di comando per specificare il bucket di cui desideri la policy. Assicurati di configurare l'SDK come mostrato in precedenza.

Crea un oggetto di servizioAWS.S3. L'unico parametro che deve essere passato è il nome del bucket selezionato quando si chiama il metodo getBucketPolicy. Se il bucket ha attualmente una policy, tale policy viene restituita da Amazon S3 nel parametro passato alla data funzione di callback.

Se il bucket selezionato non dispone di alcuna policy, tali informazioni vengono restituite alla funzione di callback nel parametro error.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); var bucketParams = { Bucket: process.argv[2] }; // call S3 to retrieve policy for selected bucket s3.getBucketPolicy(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else if (data) { console.log("Success", data.Policy); } });

Digita la seguente riga di comando per eseguire l'esempio.

node s3_getbucketpolicy.js BUCKET_NAME

Questo codice di esempio può essere trovato qui su. GitHub

Impostazione di una policy dei bucket semplice

Crea un modulo Node.js con il nome del file s3_setbucketpolicy.js. Il modulo richiede un singolo argomento della riga di comando per specificare il bucket di cui desideri applicare la policy. Configura l'SDK come mostrato in precedenza.

Crea un oggetto di servizioAWS.S3. Le policy dei bucket sono specificate in un oggetto JSON. In primo luogo, crea un oggetto JSON che contenga tutti i valori per specificare la policy tranne il valore Resource che identifica il bucket.

Formatta la stringa Resource necessaria per la policy, incorporando il nome del bucket selezionato. Inserisci la stringa nell'oggetto JSON. Prepara i parametri per il metodo putBucketPolicy, tra cui il nome del bucket e la policy JSON convertiti a un valore di stringa.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); var readOnlyAnonUserPolicy = { Version: "2012-10-17", Statement: [ { Sid: "AddPerm", Effect: "Allow", Principal: "*", Action: ["s3:GetObject"], Resource: [""], }, ], }; // create selected bucket resource string for bucket policy var bucketResource = "arn:aws:s3:::" + process.argv[2] + "/*"; readOnlyAnonUserPolicy.Statement[0].Resource[0] = bucketResource; // convert policy JSON into string and assign into params var bucketPolicyParams = { Bucket: process.argv[2], Policy: JSON.stringify(readOnlyAnonUserPolicy), }; // set the new policy on the selected bucket s3.putBucketPolicy(bucketPolicyParams, function (err, data) { if (err) { // display error message console.log("Error", err); } else { console.log("Success", data); } });

Digita la seguente riga di comando per eseguire l'esempio.

node s3_setbucketpolicy.js BUCKET_NAME

Questo codice di esempio può essere trovato qui su GitHub.

Eliminazione di una policy dei bucket

Crea un modulo Node.js con il nome del file s3_deletebucketpolicy.js. Il modulo richiede un singolo argomento della riga di comando per specificare il bucket di cui desideri eliminare la policy. Configura l'SDK come mostrato in precedenza.

Crea un oggetto di servizioAWS.S3. L'unico parametro che deve essere passato quando si chiama il metodo deleteBucketPolicy è il nome del bucket selezionato.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); var bucketParams = { Bucket: process.argv[2] }; // call S3 to delete policy for selected bucket s3.deleteBucketPolicy(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else if (data) { console.log("Success", data); } });

Digita la seguente riga di comando per eseguire l'esempio.

node s3_deletebucketpolicy.js BUCKET_NAME

Questo codice di esempio può essere trovato qui su GitHub.