Gestion des autorisations d'accès aux compartiments Amazon S3 avec la AWS SDK for PHP version 3 - AWS SDK for PHP

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des autorisations d'accès aux compartiments Amazon S3 avec la AWS SDK for PHP version 3

Les listes de contrôle d'accès (ACL) sont l'une des options de la stratégie d'accès basée sur les ressources que vous pouvez utiliser pour gérer l'accès aux compartiments et objets. Vous pouvez utiliser des listes ACL pour accorder les autorisations en lecture/écriture de base à d'autres comptes AWS. Pour en savoir plus, consultez la section Gestion des accès avec les listes ACL.

L’exemple suivant indique comment :

  • Obtenez la politique de contrôle d'accès pour un bucket à l'aide de GetBucketAcl.

  • Définissez les autorisations sur un bucket à l'aide des ACL, en utilisant PutBucketAcl.

Tous les exemples de code pour le AWS SDK for PHP sont disponibles ici sur GitHub.

Informations d'identification

Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dansInformations d'identification. Importez ensuite leAWS SDK for PHP, comme décrit dansUtilisation de base.

Obtenir et définir une politique de liste de contrôle d'accès

Importations

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

Exemple de code

// Create a S3Client $s3Client = new S3Client([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2006-03-01' ]); // Gets the access control policy for a bucket $bucket = 'my-s3-bucket'; try { $resp = $s3Client->getBucketAcl([ 'Bucket' => $bucket ]); echo "Succeed in retrieving bucket ACL as follows: \n"; var_dump($resp); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; } // Sets the permissions on a bucket using access control lists (ACL). $params = [ 'ACL' => 'public-read', 'AccessControlPolicy' => [ // Information can be retrieved from `getBucketAcl` response 'Grants' => [ [ 'Grantee' => [ 'DisplayName' => '<string>', 'EmailAddress' => '<string>', 'ID' => '<string>', 'Type' => 'CanonicalUser', 'URI' => '<string>', ], 'Permission' => 'FULL_CONTROL', ], // ... ], 'Owner' => [ 'DisplayName' => '<string>', 'ID' => '<string>', ], ], 'Bucket' => $bucket, ]; try { $resp = $s3Client->putBucketAcl($params); echo "Succeed in setting bucket ACL.\n"; } catch (AwsException $e) { // Display error message echo $e->getMessage(); echo "\n"; }