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 au compartiment Amazon S3 avec la AWS SDK pour PHP version 3
Les listes de contrôle d'accès (ACLs) sont l'une des options de politique d'accès basées sur les ressources que vous pouvez utiliser pour gérer l'accès à vos compartiments et objets. Vous pouvez l'utiliser ACLs pour accorder read/write des autorisations de base à d'autres AWS comptes. Pour en savoir plus, consultez la section Gestion de l'accès avec ACLs.
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 en utilisant ACLs, en utilisant PutBucketAcl.
Tous les exemples de code pour le AWS SDK pour PHP sont disponibles ici GitHub
Informations d’identification
Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dansAuthentification à l' AWS aide de AWS SDK pour PHP la version 3. Importez ensuite le AWS SDK pour PHP, comme décrit dansInstallation de la AWS SDK pour PHP version 3.
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 = 'amzn-s3-demo-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"; }