Cómo usar AWS CLI para administrar cubos AWS S3

Cómo usar AWS CLI para administrar cubos AWS S3
“AWS CLI se puede usar para realizar diferentes cubos S3, así como operaciones a nivel de objeto. Usar AWS CLI para realizar diferentes operaciones en cubos S3 es una forma rápida de controlar el servicio AWS S3. Las operaciones simples de S3 como crear, eliminar e insertar los datos en el cubo S3 se pueden automatizar utilizando la función de línea de comandos AWS. Podemos escribir diferentes scripts para realizar diferentes operaciones en S3. Es importante usar la interfaz de línea de comando AWS cuando desea insertar o eliminar datos a S3 a través de algunos scripts. Antes de usar la interfaz de línea de comandos AWS, debe tener una comprensión básica de los diferentes comandos utilizados para administrar el cubo S3."

En este blog, discutiremos algunos comandos básicos utilizados para administrar los cubos S3 utilizando la interfaz de línea de comandos. En este artículo, discutiremos las siguientes operaciones que se pueden realizar en S3.

  • Creando un cubo S3
  • Insertar datos en el cubo S3
  • Eliminar datos del cubo S3
  • Eliminar un cubo S3
  • Versiones de cubo
  • Cifrado predeterminado
  • Política de cubo S3
  • Registro de acceso al servidor
  • Notificación de eventos
  • Reglas del ciclo de vida
  • Reglas de replicación

Antes de comenzar este blog, primero, debe configurar las credenciales de AWS para usar la interfaz de línea de comandos en su sistema. Visite el siguiente blog para obtener más información sobre cómo configurar las credenciales de la línea de comandos de AWS en su sistema.

https: // linuxhint.com/configure-aws-cli-credentials/

Creando un cubo S3

El primer paso para administrar las operaciones de cubo S3 utilizando la interfaz de línea de comando AWS es crear el cubo S3. Puedes usar el megabyte método del s3 Comandar para crear el cubo S3 en AWS. La siguiente es la sintaxis para usar el megabyte método de s3 Para crear el cubo S3 usando AWS CLI.

Ubuntu@ubuntu: ~ $ AWS S3 MB

El nombre del cubo es universalmente único, por lo que antes de crear un cubo S3, asegúrese de que no esté tomada por ninguna otra cuenta de AWS. El siguiente comando creará el cubo S3 llamado Linuxhint-Demo-S3-Bucket.

Ubuntu@ubuntu: ~ $ AWS S3 MB \
S3: // Linuxhint-Demo-S3-Bucket \
--Región US-West-2

El comando anterior creará un cubo S3 en la región estadounidense-oeste-2.

Después de crear el cubo S3, ahora use el LS método del s3 Para asegurarse de que el cubo se cree o no.

ubuntu@ubuntu: ~ $ aws s3 ls

Obtendrá el siguiente error en el terminal si intenta usar un nombre de cubo que ya existe.

Insertar datos en el cubo S3

Después de crear el cubo S3, ahora es el momento de poner algunos datos en el cubo S3. Para mover datos al cubo S3, los siguientes comandos están disponibles.

  • CP
  • MV
  • sincronización

El CP El comando se utiliza para copiar los datos del sistema local al cubo S3 y viceversa utilizando AWS CLI. También se puede usar para copiar los datos de un cubo de fuente S3 a otro cubo de destino S3. La sintaxis para copiar los datos hacia y desde el cubo S3 es el siguiente.

Ubuntu@ubuntu: ~ $ AWS S3 CP \
(Copiar de local a S3) ubuntu@ubuntu: ~ $ aws s3 cp \
(Copiar de S3 a local) Ubuntu@Ubuntu: ~ $ AWS S3 CP \
(Copia de un S3 a otro)

El MV método del s3 se usa para mover los datos del sistema local al cubo S3 o viceversa utilizando la AWS CLI. Al igual que el CP comando, podemos usar el MV Comando para mover datos de un cubo S3 a otro cubo S3. La siguiente es la sintaxis para usar el MV comando con AWS CLI.

Ubuntu@ubuntu: ~ $ AWS S3 MV \
(mudarse de local a s3) ubuntu@ubuntu: ~ $ aws s3 mv \
(Muévase de S3 al local) Ubuntu@Ubuntu: ~ $ AWS S3 MV \
(Muévete de un S3 a otro S3)

El sincronización El comando en la interfaz de línea de comando AWS S3 se usa para sincronizar un directorio local y un cubo S3 o dos cubos S3. El sincronización El comando primero verifica el destino y luego copia solo los archivos que no existen en el destino. A diferencia del sincronización comando, el CP y MV Los comandos mueven los datos de origen al destino incluso si el archivo con el mismo nombre ya existe en el destino.

Ubuntu@ubuntu: ~ $ AWS S3 Sync \
(Sincronización del directorio local a S3)

El comando anterior sincronizará todos los datos del directorio local al cubo S3 y copiará solo los archivos que no están presentes en el cubo S3 de destino.

Ahora sincronizaremos el cubo S3 con el directorio local utilizando el sincronización Comando con la interfaz de línea de comandos de AWS.

Ubuntu@ubuntu: ~ $ AWS S3 Sync \
(Sync S3 al directorio local)

El comando anterior sincronizará todos los datos del cubo S3 al directorio local y solo copiará los archivos que no existen en el destino, ya que ya hemos sincronizado el cubo S3 y el directorio local, por lo que no se copiaron datos esta vez.

Eliminar datos del cubo S3

En la sección anterior, discutimos diferentes métodos para insertar los datos en el cubo AWS S3 usando CP, MV, y sincronización comandos. Ahora en esta sección, discutiremos diferentes métodos y parámetros para eliminar los datos del cubo S3 utilizando AWS CLI.

Para eliminar un archivo de un cubo S3, el RM se usa el comando. La siguiente es la sintaxis para usar el RM Comando para eliminar el objeto S3 (un archivo) utilizando la interfaz de línea de comandos AWS.

ubuntu@ubuntu: ~ $ aws s3 rm \
S3: // Linuxhint-Demo-S3-Bucket/Data-Copy.TXT

Ejecutar el comando anterior solo eliminará un solo archivo en el cubo S3. Para eliminar una carpeta completa que contiene múltiples archivos, el -recursivo La opción se usa con este comando.

Para eliminar una carpeta llamada archivos que contiene múltiples archivos en el interior, se puede usar el siguiente comando.

ubuntu@ubuntu: ~ $ aws s3 rm \
S3: // Linuxhint-Demo-S3-Bucket/archivos \
--recursivo

El comando anterior eliminará primero todos los archivos de todas las carpetas en el cubo S3 y luego eliminará las carpetas. Del mismo modo, podemos usar el -recursivo opción junto con el S3 RM Método para vaciar un cubo S3 completo.

ubuntu@ubuntu: ~ $ aws s3 rm \
S3: // Linuxhint-Demo-S3-Bucket \
--recursivo

Eliminar un cubo S3

En esta sección del artículo, discutiremos cómo podemos eliminar un cubo S3 en AWS utilizando la interfaz de línea de comandos. El RB La función se usa para eliminar el cubo S3, que acepta el nombre del cubo S3 como parámetro. Antes de eliminar el cubo S3, primero debe vaciar el cubo S3 eliminando todos los datos utilizando el RM método. Cuando elimina un cubo S3, el nombre del cubo está disponible para usar para otros.

Antes de eliminar el cubo, vacíe el cubo S3 quitando todos los datos utilizando el RM método del s3.

ubuntu@ubuntu: ~ $ aws s3 rm \
\
--recursivo

Después de vaciar el cubo S3, puede usar el RB método del s3 Comandar para eliminar el cubo S3.

Ubuntu@ubuntu: ~ $ AWS S3 RB \

Versiones de cubo

Para mantener las variantes múltiples de un objeto S3 en S3, se puede habilitar el versiones de cubo S3. Cuando se habilita el versioning de cubos, puede realizar un seguimiento de los cambios que realizó en un objeto S3 Bucket. En esta sección, utilizaremos la AWS CLI para configurar el versiones de cubo S3.

Primero, verifique el estado de versiones de cubo de su cubo S3 con el siguiente comando.

Ubuntu@ubuntu: ~ $ AWS S3API Get-Bucket Versioning \
--balde

Como el versioning del cubo no está habilitado, el comando anterior no generó ninguna salida.

Después de verificar el estado de versiones de cubo de S3, ahora habilite el versiones de contorno con el siguiente comando en el terminal. Antes de habilitar el versículo, tenga en cuenta que el versiones no se puede deshabilitar después de habilitarlo, pero puede suspenderlo.

Ubuntu@ubuntu: ~ $ AWS S3API POT-BUCKET-Versión \
--balde \
--Estado de configuración de versiones = habilitado

Este comando no generará ninguna salida y habilitará con éxito el versículo de s3 de s3.

Ahora, de nuevo, verifique el estado del versiones de cubo S3 de su cubo S3 con el siguiente comando.

Ubuntu@ubuntu: ~ $ AWS S3API Get-Bucket Versioning \
--balde

Si el versioning del cubo está habilitado, se puede suspender utilizando el siguiente comando en el terminal.

Ubuntu@ubuntu: ~ $ AWS S3API POT-BUCKET-Versión \
--balde \
--Estado de configuración de versiones = suspendido

Después de suspender el versiones de cubo S3, el siguiente comando se puede utilizar para verificar nuevamente el estado de la versión de contenido de deseos.

Ubuntu@ubuntu: ~ $ AWS S3API Get-Bucket Versioning \
--balde

Cifrado predeterminado

Para asegurarse de que cada objeto en el cubo S3 esté encriptado, el cifrado predeterminado puede habilitarse en S3. Después de habilitar el cifrado predeterminado, siempre que coloque un objeto en el cubo, se encriptará automáticamente. En esta sección del blog, utilizaremos la AWS CLI para configurar el cifrado predeterminado en un cubo S3.

Primero, verifique el estado del cifrado predeterminado de su cubo S3 utilizando el cifrado de get-bucket método del S3API. Si el cifrado predeterminado del cubo no está habilitado, lanzará ServerSideEntryptionConfigurationNotFoundError excepción.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-cifrado \
--balde

Ahora para habilitar el cifrado predeterminado, el encriptación se utilizará el método.

Ubuntu@ubuntu: ~ $ AWS S3API PUT-BUCKET-Cryption \
--balde \

-Servidor-Side-cifrado-configuración '"reglas": ["AplicarServerSideEntryptionByDefault": "Ssealgorithm": "AES256"]'

El comando anterior habilitará el cifrado predeterminado, y cada objeto se encriptará utilizando el cifrado del lado del servidor AES-256 cuando se coloca en el cubo S3.

Después de habilitar el cifrado predeterminado, ahora vuelva a verificar el estado del cifrado predeterminado usando el siguiente comando.

Si el cifrado predeterminado está habilitado, puede deshabilitar el cifrado predeterminado utilizando el siguiente comando en el terminal.

Ubuntu@ubuntu: ~ $ AWS S3API Delete-Bucket-cifrado \
--balde

Ahora, si verifica el estado de cifrado predeterminado nuevamente, lanzará el ServerSideEntryptionConfigurationNotFoundError excepción.

Política de cubo S3

La Política de cubo S3 se utiliza para permitir que otros servicios de AWS dentro o en las cuentas se accedan a S3. Se utiliza para administrar el permiso del cubo S3. En esta sección del blog, utilizaremos la AWS CLI para configurar los permisos de cubo S3 aplicando la política de cubo S3.

Primero, verifique la política de cubo S3 para ver si existe o no en algún cubo S3 específico utilizando el siguiente comando en el terminal.

Ubuntu@ubuntu: ~ $ AWS S3API Get-Bucket-Policy \
--balde

Si el cubo S3 no tiene ninguna política de cubo asociada con el cubo, lanzará el error anterior en el terminal.

Ahora vamos a configurar la política de cubo S3 en el cubo S3 existente. Para esto, primero, necesitamos crear un archivo que contenga la política en formato JSON. Crea un archivo llamado política.json y pegar el siguiente contenido allí. Cambie la política y coloque el nombre de su cubo S3 antes de usarla.


"Declaración": [

"Efecto": "Negue",
"Principal": "*",
"Acción": "S3: GetObject",
"Recurso": "ARN: AWS: S3 ::: MyS3Bucket/*"

]

Ahora ejecute el siguiente comando en el terminal para aplicar esta política al cubo S3.

Ubuntu@ubuntu: ~ $ AWS S3API POT-BUCKET-POLICY \
--balde \
--Archivo de política: // Política.json

Después de aplicar la política, ahora verifique el estado de la Política del cubo ejecutando el siguiente comando en el terminal.

Ubuntu@ubuntu: ~ $ AWS S3API Get-Bucket-Policy \
--balde

Para eliminar la política de cubo S3 adjunta al cubo S3, el siguiente comando se puede ejecutar en el terminal.

Ubuntu@ubuntu: ~ $ AWS S3API Delete-Bucket-Policy \
--balde

Registro de acceso al servidor

Para registrar todas las solicitudes realizadas en un cubo S3 en otro cubo S3, el registro de acceso al servidor debe estar habilitado para un cubo S3. En esta sección del blog, discutiremos cómo podemos configurar el acceso de acceso al servidor y un cubo S3 utilizando la interfaz de línea de comandos AWS.

Primero, obtenga el estado actual del registro de acceso al servidor para un cubo S3 utilizando el siguiente comando en el terminal.

Ubuntu@ubuntu: ~ $ AWS S3API Get-Bucket-logging \
--balde

Cuando el registro de acceso al servidor no está habilitado, el comando anterior no arrojará ninguna salida en el terminal.

Después de verificar el estado del registro, ahora intentamos habilitar el registro en el cubo S3 para colocar registros en otro cubo S3 de destino. Antes de habilitar el registro, asegúrese de que el cubo de destino tenga una política adjunta que permita que el cubo de origen ponga datos en él.

Primero, cree un archivo llamado Inicio sesión.json y pegue el siguiente contenido allí y reemplace el TargetBucket con el nombre del cubo de Target S3.


"LoggingEnabled":
"TargetBucket": "MyBucket",
"TargetPrefix": "Logs/"

Ahora use el siguiente comando para habilitar el registro en un cubo S3.

Ubuntu@ubuntu: ~ $ AWS S3API POT-BUCKET-LOGGING \
--balde \
--Archivo Bucket-Logging-Status: // Registro.json

Después de habilitar el registro de acceso del servidor en el cubo S3, puede verificar nuevamente el estado del registro S3 utilizando el siguiente comando.

Ubuntu@ubuntu: ~ $ AWS S3API Get-Bucket-logging \
--balde

Notificación de eventos

AWS S3 nos proporciona una propiedad para activar una notificación cuando se produce un evento específico al S3. Podemos usar notificaciones de eventos S3 para activar temas de SNS, una función Lambda o una cola SQS. En esta sección, veremos cómo podemos configurar las notificaciones de eventos S3 utilizando la interfaz de línea de comandos AWS.

En primer lugar, use el get-bucket-notification-configuration método del S3API Para obtener el estado de la notificación del evento en un cubo específico.

Ubuntu@ubuntu: ~ $ AWS S3API Get-Bucket-Notificación Configuración \
--balde

Si el cubo S3 no tiene ninguna notificación de evento configurada, no generará ninguna salida en el terminal.

Para habilitar una notificación de evento para activar el tema SNS, primero debe adjuntar una política al tema SNS que permite que el cubo S3 lo active. Después de esto, debe crear un archivo llamado notificación.json, que incluye los detalles del tema SNS y el evento S3. Crear un archivo notificación.json y pegar el siguiente contenido allí.


"TopicConfigurations": [

"Topicarn": "ARN: AWS: SNS: US-West-2: 123456789012: S3-Notificación-Tope",
"Eventos": [
"S3: ObjectCreated:*"
]

]

Según la configuración anterior, cada vez que coloque un objeto nuevo en el cubo S3, activará el tema de SNS definido en el archivo.

Después de crear el archivo, ahora cree la notificación del evento S3 en su cubo S3 específico con el siguiente comando.

Ubuntu@ubuntu: ~ $ AWS S3API PUT-BUCKET-Notificación Configuración \
--balde \
--archivo de configuración de notificación: // notificación.json

El comando anterior creará una notificación de evento S3 con las configuraciones proporcionadas en el notificación.json archivo.

Después de crear la notificación del evento S3, ahora nuevamente enumere todas las notificaciones de eventos utilizando el siguiente comando AWS CLI.

Ubuntu@ubuntu: ~ $ AWS S3API Get-Bucket-Notificación Configuración \
--balde

Este comando enumerará la notificación de eventos anterior en la salida de la consola. Del mismo modo, puede agregar múltiples notificaciones de eventos a un solo cubo S3.

Reglas del ciclo de vida

El cubo S3 proporciona reglas del ciclo de vida para administrar el ciclo de vida de los objetos almacenados en el cubo S3. Esta característica se puede utilizar para especificar el ciclo de vida de las diferentes versiones de los objetos S3. Los objetos S3 se pueden mover a diferentes clases de almacenamiento o se pueden eliminar después de un período de tiempo específico. En esta sección del blog, veremos cómo podemos configurar las reglas del ciclo de vida utilizando la interfaz de línea de comandos.

En primer lugar, obtenga todas las reglas del ciclo de vida del cubo S3 configuradas en un cubo utilizando el siguiente comando.

Ubuntu@ubuntu: ~ $ AWS S3API GET-BUCKET-LIFECYCLE \
--balde

Si las reglas del ciclo de vida no están configuradas con el cubo S3, obtendrá el Nosuchlifecycleconfiguration excepción en respuesta.

Ahora creemos una configuración de reglas de ciclo de vida utilizando la línea de comandos. El Put-bucket-lifecycle El método se puede utilizar para crear la regla de configuración del ciclo de vida.

En primer lugar, cree un normas.json Archivo que incluye las reglas del ciclo de vida en formato JSON.


"Normas": [

"ID": "Muévete al glaciar después de 1 meses",
"Prefijo": "Datos/",
"Estado": "habilitado",
"Transición":
"Días": 30,
"StorageClass": "Glacier"

,

"Cambiar":
"Fecha": "2025-01-01T00: 00: 00.000z "
,
"ID": "Eliminar datos en 2025.",
"Prefijo": "Data antiguo/",
"Estado": "habilitado"

]

Después de crear el archivo con reglas en formato JSON, ahora cree la regla de configuración del ciclo de vida utilizando el siguiente comando.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-lifecycle \
--balde \
--Lifecycle-Configuration File: // Reglas.json

El comando anterior creará con éxito una configuración del ciclo de vida, y puede obtener la configuración del ciclo de vida utilizando el get-bucket-lifecycle método.

Ubuntu@ubuntu: ~ $ AWS S3API GET-BUCKET-LIFECYCLE \
--balde

El comando anterior enumerará todas las reglas de configuración creadas para el ciclo de vida. Del mismo modo, puede eliminar la regla de configuración del ciclo de vida utilizando el Eliminar el bucket-lifecycle método.

Ubuntu@ubuntu: ~ $ AWS S3API Delete-Bucket-Lifecycle \
--balde

El comando anterior eliminará con éxito las configuraciones del ciclo de vida del cubo S3.

Reglas de replicación

Las reglas de replicación en los cubos S3 se utilizan para copiar objetos específicos de un cubo de fuente S3 a un cubo S3 de destino dentro de la misma o diferente cuenta. Además, puede especificar la clase de almacenamiento de destino y la opción de cifrado en la configuración de la regla de replicación. En esta sección, aplicaremos la regla de replicación en un cubo S3 utilizando la interfaz de línea de comandos.

Primero, obtenga todas las reglas de replicación configuradas en un cubo S3 utilizando el replicación de get-bucket método.

Ubuntu@ubuntu: ~ $ AWS S3API Get-Bucket-Repplication \
--balde

Si no hay una regla de replicación configurada con un cubo S3, el comando lanzará el ReplicationConfigurationNotFoundError excepción.

Para crear una nueva regla de replicación utilizando la interfaz de línea de comandos, primero debe habilitar el versiones de versiones en el Bucket S3 de origen y destino. Habilitar el versiones se ha discutido anteriormente en este blog.

Después de habilitar el versioning del cubo S3 tanto en el cubo de origen como de destino, ahora cree un replicación.json archivo. Este archivo incluye la configuración de reglas de replicación en formato JSON. Reemplace la Iam_role_arn y Destino_bucket_arn En la siguiente configuración antes de crear la regla de replicación.


"Rol": "iam_role_arn",
"Normas": [

"Estado": "habilitado",
"Prioridad": 100,
"DeletemarkerRePlication": "estado": "habilitado",
"Filtrar": "prefijo": "datos",
"Destino":
"Bucket": "Destination_bucket_arn"


]

Después de crear el replicación.json Archivo, ahora cree la regla de replicación utilizando el siguiente comando.

Ubuntu@ubuntu: ~ $ AWS S3API PUT-BUCKET REPRICACIÓN \
--balde \
--archivo de configuración de replicación: // replicación.json

Después de ejecutar el comando anterior, creará una regla de replicación en el cubo S3 de origen que copiará automáticamente los datos al cubo S3 de destino especificado en el replicación.json archivo.

Del mismo modo, puede eliminar la regla de replicación del cubo S3 utilizando el retricación de eliminación de bucket Método en la interfaz de línea de comandos.

Ubuntu@ubuntu: ~ $ AWS S3API Delete-Bucket Replication \
--balde

Conclusión

Este blog describe cómo podemos usar la interfaz de línea de comandos AWS para realizar operaciones básicas a avanzadas como crear y eliminar un cubo S3, insertar y eliminar datos del cubo S3, habilitando el cifrado predeterminado, el registro de acceso del servidor, la notificación de eventos, las reglas de replicación y configuraciones de ciclo de vida. Estas operaciones se pueden automatizar utilizando los comandos de interfaz de línea de comandos AWS en sus scripts y, por lo tanto, ayudan a automatizar el sistema.