Abbiamo annunciato
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
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à:
-
Installa Node.js. Per ulteriori informazioni sull'installazione di Node.js, consulta il sito Web Node.js
. -
Creazione di un file di configurazione condiviso con le credenziali utente. Per ulteriori informazioni sulla fornitura di un file delle credenziali condiviso, consulta Caricamento delle credenziali su Node.js dal file delle credenziali condiviso.
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