View a markdown version of this page

Abilitazione dell'ABAC in bucket generici - Amazon Simple Storage Service

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à.

Abilitazione dell'ABAC in bucket generici

Attribute-based il controllo degli accessi (ABAC) è una strategia di autorizzazione che utilizzi per definire le autorizzazioni in base agli attributi, ad esempio i tag. Per impostazione predefinita, l'ABAC è disabilitato per tutti i bucket generici di Amazon S3. Per utilizzare ABAC per bucket generici, devi abilitarlo.

Prima di abilitare ABAC per il tuo bucket generico, ti consigliamo di completare innanzitutto le attività descritte nei seguenti argomenti:

Esecuzione di audit sulle policy prima dell’abilitazione dell’ABAC

Prima di abilitare l'ABAC per il bucket, se il bucket contiene tag, verifica le politiche di controllo degli accessi per verificare se le condizioni basate sui tag fanno riferimento a uno dei tag esistenti nei bucket. In tal caso, verifica che queste politiche siano configurate come previsto e che l'attivazione del controllo degli accessi basato su tag non crei modifiche involontarie alle autorizzazioni ai flussi di lavoro di Amazon S3. Ciò ti aiuterà a garantire che le tue policy funzionino come previsto dopo l'attivazione dell'ABAC sui tuoi bucket. Per esempi di utilizzo di condizioni basate su attributi con tag, vedere. Utilizzo di tag con bucket S3 per uso generico

Includere le autorizzazioni richieste nelle politiche IAM

Sono necessarie le seguenti autorizzazioni Amazon S3 per abilitare l'ABAC per il tuo bucket:

  • s3:PutBucketAbac— Aggiorna lo stato ABAC per il tuo bucket per uso generico.

  • s3:GetBucketAbac— Visualizza lo stato ABAC del tuo bucket per uso generico

Dopo aver abilitato l'ABAC, le autorizzazioni utilizzate in precedenza per aggiungere tag a un bucket o eliminare tag da un bucket, PutBucketTagging oDeleteBucketTagging, non funzioneranno più. Utilizza invece le UntagResource API TagResource and per eseguire queste attività.

Ti consigliamo di utilizzare le UntagResource API TagResource and per gestire i tag prima di abilitare ABAC sui tuoi bucket. La console Amazon S3 e CloudFormation ora utilizzano le API and per impostazione predefinita. TagResource UntagResource Puoi anche disabilitare ABAC sul tuo bucket utilizzando l'API. PutBucketAbac Puoi utilizzarlo GetBucketTagging per elencare i tag nei tuoi bucket. Questa API continuerà a funzionare dopo aver abilitato l'ABAC per i tuoi bucket. In alternativa puoi anche usarla ListTagsForResource per elencare tutti i tag sui tuoi bucket.

Avrai bisogno delle seguenti autorizzazioni per applicare e rimuovere i tag dai bucket generici.

  • s3:TagResource- Aggiungi tag a una AWS risorsa, ad esempio un bucket Amazon S3 per uso generico.

  • s3:UntagResource- Rimuovi i tag da una AWS risorsa, ad esempio un bucket per uso generico Amazon S3.

  • s3:ListTagsForResource- Visualizza i tag applicati a una AWS risorsa, ad esempio un bucket per uso generico Amazon S3.

La seguente politica IAM concede l'autorizzazione per abilitare ABAC e visualizzarne lo stato per il bucket.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutBucketAbac", "s3:GetBucketAbac" ], "Resource": "arn:aws:s3:::my-s3-bucket/*" } ] }

Per ulteriori informazioni sull'etichettatura dei bucket per uso generico ed esempi di politiche ABAC per i bucket generici, consulta. Utilizzo di tag con bucket S3 per uso generico

Fasi

Se disponi s3:PutBucketAbac dell'autorizzazione per un bucket generico, puoi abilitare ABAC per il bucket utilizzando la console Amazon S3, l'interfaccia a riga di AWS comando (AWS CLI), l'API REST di Amazon S3 e gli SDK. AWS

Per abilitare ABAC per un bucket generico utilizzando la console Amazon S3:

  1. Accedi alla console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nel riquadro di navigazione a sinistra, scegli bucket.

  3. Scegliere il nome del bucket.

  4. Scegliere la scheda Properties (Proprietà).

  5. Nel pannello Bucket ABAC e scegli Modifica.

  6. Scegli l'interruttore Abilita.

  7. Rivedi e riconosci le autorizzazioni necessarie per gestire i tag dopo aver abilitato ABAC:TagResource, UntagResource e. ListTagsForResource

  8. Scegli Save changes (Salva modifiche).

SDK for Java 2.x

Questo esempio mostra come aggiungere l'abilitazione ABAC per un bucket generico utilizzando il. AWS SDK for Java 2.x Per utilizzare il comando, sostituisci il user input placeholders con le tue informazioni.

import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.AbacStatus; import software.amazon.awssdk.services.s3.model.GetBucketAbacRequest; import software.amazon.awssdk.services.s3.model.GetBucketAbacResponse; import software.amazon.awssdk.services.s3.model.PutBucketAbacRequest; import software.amazon.awssdk.services.s3.model.PutBucketAbacResponse; import software.amazon.awssdk.regions.Region; public class BucketAbac { public static void main(String[] args) { Region region = Region.US_EAST_1; S3Client s3 = S3Client.builder() .region(region) .build(); putBucketAbac(s3, "amzn-s3-demo-bucket", "Enabled"); getBucketAbac(s3, "amzn-s3-demo-bucket"); putBucketAbac(s3, "amzn-s3-demo-bucket", "Disabled"); getBucketAbac(s3, "amzn-s3-demo-bucket"); } /** * Sets the ABAC (Attribute-Based Access Control) status for a specified S3 bucket. * * @param s3 The S3Client instance to use for the API call * @param bucketName The name of the S3 bucket to update * @param status The desired ABAC status ("Enabled" or "Disabled") */ public static void putBucketAbac(S3Client s3, String bucketName, String status) { try { AbacStatus abacStatus = AbacStatus.builder() .abacStatus(status) .build(); PutBucketAbacReqquest request = PutBucketAbacRequest.builder() .bucket(bucketName) .abacStatus(abacStatus) .build(); s3.putBucketAbac(request); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } /** * Retrieves the current ABAC (Attribute-Based Access Control) status for a specified S3 bucket. * * @param s3 The S3Client instance to use for the API call * @param bucketName The name of the S3 bucket to query */ public static void getBucketAbac(S3Client s3, String bucketName) { try { GetBucketAbacReqquest request = GetBucketAbacRequest.builder() .bucket(bucketName) .build(); GetBucketAbacResponse response = s3.getBucketAbac(request); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }

Questo esempio mostra come aggiungere enable ABAC per un bucket generico utilizzando l' AWS SDK per Java 2.x. Per utilizzare il comando, sostituisci il file user input placeholders con le tue informazioni.

Per informazioni sul supporto dell'API REST di Amazon S3 per l'aggiunta di tag a un bucket generico, consulta la seguente sezione nell'Amazon Simple Storage Service API Reference:

Per installare la AWS CLI, consulta Installazione della AWS CLI nella Guida per l'utente. AWS Command Line Interface

Il seguente esempio di CLI mostra come abilitare ABAC per un bucket generico utilizzando. AWS CLI Per utilizzare il comando, sostituisci il user input placeholders con le tue informazioni.

Richiesta:

# Enable ABAC on a general purpose bucket aws s3api put-bucket-abac --bucket amzn-s3-demo-bucket --abac-status Status=Enabled --region us-east-2 # Disable ABAC on a general purpose bucket aws s3api put-bucket-abac --bucket amzn-s3-demo-bucket --abac-status Status=Disabled --region us-east-2 # Get ABAC status on a general purpose bucket aws s3api get-bucket-abac --bucket amzn-s3-demo-bucket --region us-east-2