Uso de comandos de nivel de API (s3api) con la AWS CLI - AWS Command Line Interface

Uso de comandos de nivel de API (s3api) con la AWS CLI

Los comandos de nivel de API (incluidos en el conjunto de comandos de s3api) proporcionan acceso directo a las API de Amazon Simple Storage Service (Amazon S3) y permiten realizar algunas operaciones no expuestas en los comandos de s3 de alto nivel. Estos comandos son el equivalente de los otros servicios de AWS que proporcionan acceso de nivel de API a la funcionalidad de los servicios. Para obtener más información acerca de los comandos s3, consulte Uso de comandos alto nivel (s3) con la AWS CLI

En este tema, se incluyen ejemplos en los que se muestra cómo se usan los comandos de más bajo nivel que se asignan a las API de Amazon S3. Además, puede encontrar ejemplos para cada comando de API de S3 en la sección s3api ‎de la guía de referencia de AWS CLI versión 2.

Requisitos previos

Para ejecutar los comandos de s3api, necesitará:

  • AWS CLI instalada, consulte Instalación o actualización de la versión más reciente de AWS CLI para obtener más información.

  • AWS CLI configurada, consulte Fundamentos de configuración para obtener más información. El perfil que utilice debe tener permisos que permitan las operaciones que AWS realizó por los ejemplos.

  • Comprenda estos términos de Amazon S3:

    • Bucket: una carpeta de Amazon S3 de nivel superior.

    • Prefijo: una carpeta de Amazon S3 en un bucket.

    • Objeto: cualquier artículo alojado en un bucket de Amazon S3.

Aplicación de una ACL personalizada

Con los comandos de alto nivel, puede utilizar la opción --acl para aplicar las listas de control de acceso (ACL) predefinidas en objetos de Amazon S3. Sin embargo, no puede usar ese comando para establecer ACL en todo el bucket. Sin embargo, ‎puede hacerlo con el comando de nivel de API put-bucket-acl.

En el siguiente ejemplo se muestra cómo conceder control total a dos usuarios de AWS (user1@example.com y user2@example.com) y permisos de lectura a todos los usuarios. El identificador para "everyone" (todos) proviene de un URI especial que se pasa como parámetro.

$ aws s3api put-bucket-acl --bucket MyBucket --grant-full-control 'emailaddress="user1@example.com",emailaddress="user2@example.com"' --grant-read 'uri="http://acs.amazonaws.com/groups/global/AllUsers"'

Para obtener más información acerca de cómo construir las ACL, consulte PUT Bucket acl en la Referencia de la API de Amazon Simple Storage Service. Los comandos ACL de s3api en la CLI, como put-bucket-acl, usan la misma notación abreviada de argumentos.

Configuración de una política de registro

El comando de la API put-bucket-logging configura una política de registro del bucket.

En el siguiente ejemplo, se concede al usuario de AWS user@example.com control total sobre los archivos de registro, y todos los usuarios tendrán acceso de lectura a ellos. Tenga en cuenta que el comando put-bucket-acl también es necesario para conceder al sistema de entrega de registros de Amazon S3 (especificado por un URI) los permisos necesarios para leer y escribir los registros en el bucket.

$ aws s3api put-bucket-acl --bucket MyBucket --grant-read-acp 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"' --grant-write 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"' $ aws s3api put-bucket-logging --bucket MyBucket --bucket-logging-status file://logging.json

El archivo logging.json del comando anterior contiene lo siguiente.

{ "LoggingEnabled": { "TargetBucket": "MyBucket", "TargetPrefix": "MyBucketLogs/", "TargetGrants": [ { "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "user@example.com" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] } }

Recursos

referencia de AWS CLI:

Referencia de servicio: