Sono disponibili altri esempi per SDK AWS nel repository GitHub della documentazione degli esempi per SDK AWS
Utilizzare GetBucketPolicy con un SDK AWS o una CLI
Gli esempi di codice seguenti mostrano come utilizzare GetBucketPolicy.
- C++
-
- SDK per C++
-
Nota
Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS
. bool AwsDoc::S3::getBucketPolicy(const Aws::String &bucketName, const Aws::S3::S3ClientConfiguration &clientConfig) { Aws::S3::S3Client s3Client(clientConfig); Aws::S3::Model::GetBucketPolicyRequest request; request.SetBucket(bucketName); Aws::S3::Model::GetBucketPolicyOutcome outcome = s3Client.GetBucketPolicy(request); if (!outcome.IsSuccess()) { const Aws::S3::S3Error &err = outcome.GetError(); std::cerr << "Error: getBucketPolicy: " << err.GetExceptionName() << ": " << err.GetMessage() << std::endl; } else { Aws::StringStream policy_stream; Aws::String line; outcome.GetResult().GetPolicy() >> line; policy_stream << line; std::cout << "Retrieve the policy for bucket '" << bucketName << "':\n\n" << policy_stream.str() << std::endl; } return outcome.IsSuccess(); }-
Per informazioni dettagliate sull’API, consulta GetBucketPolicy nella documentazione di riferimento dell’API AWS SDK per C++.
-
- CLI
-
- AWS CLI
-
Il comando seguente recupera la policy di bucket per un bucket denominato
amzn-s3-demo-bucket.aws s3api get-bucket-policy --bucketamzn-s3-demo-bucketOutput:
{ "Policy": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::amzn-s3-demo-bucket/*\"},{\"Sid\":\"\",\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::amzn-s3-demo-bucket/secret/*\"}]}" }Come ottenere e implementare una policy di bucket L’esempio seguente mostra come scaricare una policy di bucket di Amazon S3, apportare modifiche al file e quindi utilizzare
put-bucket-policyper applicare la policy di bucket modificata. Per scaricare la policy di bucket in un file, è possibile eseguire:aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket --query Policy --output text > policy.jsonSarà quindi possibile modificare il file
policy.jsonin base alle esigenze. Sarà infine possibile riapplicare la policy modificata al bucket S3 eseguendo il filepolicy.json, se necessario. Sarà infine possibile riapplicare la policy modificata al bucket S3 eseguendo il filese necessario. Sarà infine possibile riapplicare la policy modificata al bucket S3 eseguendo il file
aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json-
Per informazioni dettagliate sull’API, consulta GetBucketPolicy
nella documentazione di riferimento dei comandi della AWS CLI.
-
- Java
-
- SDK per Java 2.x
-
Nota
Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS
. import software.amazon.awssdk.services.s3.model.S3Exception; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.GetBucketPolicyRequest; import software.amazon.awssdk.services.s3.model.GetBucketPolicyResponse; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * <p> * For more information, see the following documentation topic: * <p> * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class GetBucketPolicy { public static void main(String[] args) { final String usage = """ Usage: <bucketName> Where: bucketName - The Amazon S3 bucket to get the policy from. """; if (args.length != 1) { System.out.println(usage); System.exit(1); } String bucketName = args[0]; System.out.format("Getting policy for bucket: \"%s\"\n\n", bucketName); Region region = Region.US_EAST_1; S3Client s3 = S3Client.builder() .region(region) .build(); String polText = getPolicy(s3, bucketName); System.out.println("Policy Text: " + polText); s3.close(); } /** * Retrieves the policy for the specified Amazon S3 bucket. * * @param s3 the {@link S3Client} instance to use for making the request * @param bucketName the name of the S3 bucket for which to retrieve the policy * @return the policy text for the specified bucket, or an empty string if an error occurs */ public static String getPolicy(S3Client s3, String bucketName) { String policyText; System.out.format("Getting policy for bucket: \"%s\"\n\n", bucketName); GetBucketPolicyRequest policyReq = GetBucketPolicyRequest.builder() .bucket(bucketName) .build(); try { GetBucketPolicyResponse policyRes = s3.getBucketPolicy(policyReq); policyText = policyRes.policy(); return policyText; } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; } }-
Per informazioni dettagliate sull’API, consulta GetBucketPolicy nella documentazione di riferimento dell’API AWS SDK for Java 2.x.
-
- JavaScript
-
- SDK per JavaScript (v3)
-
Nota
Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS
. Recupera la policy del bucket.
import { GetBucketPolicyCommand, S3Client, S3ServiceException, } from "@aws-sdk/client-s3"; /** * Logs the policy for a specified bucket. * @param {{ bucketName: string }} */ export const main = async ({ bucketName }) => { const client = new S3Client({}); try { const { Policy } = await client.send( new GetBucketPolicyCommand({ Bucket: bucketName, }), ); console.log(`Policy for "${bucketName}":\n${Policy}`); } catch (caught) { if ( caught instanceof S3ServiceException && caught.name === "NoSuchBucket" ) { console.error( `Error from S3 while getting policy from ${bucketName}. The bucket doesn't exist.`, ); } else if (caught instanceof S3ServiceException) { console.error( `Error from S3 while getting policy from ${bucketName}. ${caught.name}: ${caught.message}`, ); } else { throw caught; } } };-
Per ulteriori informazioni, consulta la Guida per sviluppatori di AWS SDK per JavaScript.
-
Per informazioni dettagliate sull’API, consulta GetBucketPolicy nella documentazione di riferimento dell’API AWS SDK per JavaScript.
-
- Kotlin
-
- SDK per Kotlin
-
Nota
Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS
. suspend fun getPolicy(bucketName: String): String? { println("Getting policy for bucket $bucketName") val request = GetBucketPolicyRequest { bucket = bucketName } S3Client.fromEnvironment { region = "us-east-1" }.use { s3 -> val policyRes = s3.getBucketPolicy(request) return policyRes.policy } }-
Per informazioni dettagliate sull’API, consulta GetBucketPolicy
nella documentazione di riferimento dell’API AWS SDK per Kotlin.
-
- PowerShell
-
- Strumenti per PowerShell V4
-
Esempio 1: questo comando restituisce la policy di bucket associata al bucket S3 specificato.
Get-S3BucketPolicy -BucketName 'amzn-s3-demo-bucket'-
Per informazioni dettagliate sull’API, consulta GetBucketPolicy nella documentazione di riferimento dei cmdlet di AWS Strumenti per PowerShell (V4).
-
- Strumenti per PowerShell V5
-
Esempio 1: questo comando restituisce la policy di bucket associata al bucket S3 specificato.
Get-S3BucketPolicy -BucketName 'amzn-s3-demo-bucket'-
Per informazioni dettagliate sull’API, consulta GetBucketPolicy nella documentazione di riferimento dei cmdlet di AWS Strumenti per PowerShell (V5).
-
- Python
-
- SDK per Python (Boto3)
-
Nota
Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS
. class BucketWrapper: """Encapsulates S3 bucket actions.""" def __init__(self, bucket): """ :param bucket: A Boto3 Bucket resource. This is a high-level resource in Boto3 that wraps bucket actions in a class-like structure. """ self.bucket = bucket self.name = bucket.name def get_policy(self): """ Get the security policy of the bucket. :return: The security policy of the specified bucket, in JSON format. """ try: policy = self.bucket.Policy() logger.info( "Got policy %s for bucket '%s'.", policy.policy, self.bucket.name ) except ClientError: logger.exception("Couldn't get policy for bucket '%s'.", self.bucket.name) raise else: return json.loads(policy.policy)-
Per informazioni dettagliate sull’API, consulta GetBucketPolicy nella documentazione di riferimento dell’API AWS SDK per Python (Boto3).
-
- Ruby
-
- SDK per Ruby
-
Nota
Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS
. # Wraps an Amazon S3 bucket policy. class BucketPolicyWrapper attr_reader :bucket_policy # @param bucket_policy [Aws::S3::BucketPolicy] A bucket policy object configured with an existing bucket. def initialize(bucket_policy) @bucket_policy = bucket_policy end # Gets the policy of a bucket. # # @return [Aws::S3::GetBucketPolicyOutput, nil] The current bucket policy. def policy policy = @bucket_policy.data.policy policy.respond_to?(:read) ? policy.read : policy rescue Aws::Errors::ServiceError => e puts "Couldn't get the policy for #{@bucket_policy.bucket.name}. Here's why: #{e.message}" nil end end-
Per informazioni dettagliate sull’API, consulta GetBucketPolicy nella documentazione di riferimento dell’API AWS SDK per Ruby.
-