Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Administración de permisos de acceso a los buckets de Amazon S3 con la versión 3 de AWS SDK para PHP
Las listas de control de acceso (ACL) son una de las opciones de política de acceso basada en recursos que puede utilizar para administrar el acceso a sus buckets y objetos. Puede utilizar las ACL para otorgar permisos básicos de lectura o escritura a otras cuentas de AWS. Para obtener más información, consulte Administración de acceso con ACL.
El siguiente ejemplo muestra cómo:
-
Obtener la política de control de acceso para un bucket utilizando GetBucketAcl.
-
Establecer los permisos en un bucket con ACL utilizando PutBucketAcl.
Todo el código de ejemplo de AWS SDK para PHP está disponible aquí en GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Autenticación AWS con la AWS SDK para PHP versión 3. A continuación, importe AWS SDK para PHP, como se indica en Instalación del AWS SDK para PHP versión 3.
Obtener y establecer una política de lista de control de acceso
Importaciones
require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;
Código de muestra
// 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"; }