Como usar a AWS CLI para gerenciar baldes da AWS S3

Como usar a AWS CLI para gerenciar baldes da AWS S3
“A AWS CLI pode ser usada para executar diferentes baldes S3, bem como operações no nível de objetos. Usar a AWS CLI para executar operações diferentes nos baldes S3 é uma maneira rápida de controlar o serviço AWS S3. Operações simples S3, como criar, excluir e inserir os dados no balde S3, podem ser automatizados usando o recurso da linha de comando da AWS. Podemos escrever scripts diferentes para realizar operações diferentes no S3. É importante usar a interface da linha de comando da AWS quando você deseja inserir ou excluir dados para S3 por meio de alguns scripts. Antes de usar a interface da linha de comando da AWS, você deve ter um entendimento básico dos diferentes comandos usados ​​para gerenciar o balde S3.”

Neste blog, discutiremos alguns comandos básicos usados ​​para gerenciar os baldes S3 usando a interface da linha de comando. Neste artigo, discutiremos as seguintes operações que podem ser realizadas no S3.

  • Criando um balde S3
  • Inserindo dados no balde S3
  • Excluindo dados do balde S3
  • Excluindo um balde S3
  • Versão do balde
  • Criptografia padrão
  • Política de balde S3
  • Loging de acesso ao servidor
  • Notificação de eventos
  • Regras do ciclo de vida
  • Regras de replicação

Antes de iniciar este blog, primeiro, você precisa configurar credenciais da AWS para usar a interface da linha de comando em seu sistema. Visite o seguinte blog para saber mais sobre como configurar as credenciais da linha de comando da AWS em seu sistema.

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

Criando um balde S3

O primeiro passo para gerenciar as operações do balde S3 usando a interface da linha de comando da AWS é criar o balde S3. Você pode usar o mb Método do S3 comando para criar o balde S3 na AWS. A seguir está a sintaxe para usar o mb método de S3 Para criar o balde S3 usando a AWS CLI.

ubuntu@ubuntu: ~ $ aws s3 mb

O nome do balde é universalmente único; portanto, antes de criar um balde S3, verifique se ele ainda não foi levado por qualquer outra conta da AWS. O seguinte comando criará o balde S3 nomeado linuxhint-demo-s3-bucket.

ubuntu@ubuntu: ~ $ aws s3 mb \
s3: // linuxhint-demo-s3-bucket \
--Região US-West-2

O comando acima criará um balde S3 na região dos EUA-West-2.

Depois de criar o balde S3, agora use o ls Método do S3 para garantir se o balde é criado ou não.

ubuntu@ubuntu: ~ $ aws s3 ls

Você receberá o seguinte erro no terminal se tentar usar um nome de balde que já existe.

Inserindo dados no balde S3

Depois de criar o balde S3, agora é hora de colocar alguns dados no balde S3. Para mover dados para o balde S3, os seguintes comandos estão disponíveis.

  • cp
  • MV
  • sincronizar

O cp O comando é usado para copiar os dados do sistema local para o balde S3 e vice -versa usando a AWS CLI. Também pode ser usado para copiar os dados de um balde de origem S3 para outro balde de destino S3. A sintaxe para copiar os dados de e para o balde S3 é como abaixo.

ubuntu@ubuntu: ~ $ aws s3 cp \
(cópia de local para s3) Ubuntu@ubuntu: ~ $ aws s3 cp \
(cópia de s3 para local) ubuntu@ubuntu: ~ $ aws s3 cp \
(Copie de um S3 para outro)

O MV Método do S3 é usado para mover os dados do sistema local para o balde S3 ou vice -versa usando a AWS CLI. Assim como o cp comando, podemos usar o MV comando para mover dados de um balde S3 para outro balde S3. A seguir está a sintaxe para usar o MV comando com aws cli.

ubuntu@ubuntu: ~ $ aws s3 mv \
(mova de local para s3) Ubuntu@ubuntu: ~ $ aws s3 mv \
(mova de S3 para local) Ubuntu@ubuntu: ~ $ AWS S3 MV \
(mova de um S3 para outro S3)

O sincronizar O comando na interface da linha de comando AWS S3 é usado para sincronizar um diretório local e um balde S3 ou dois baldes S3. O sincronizar O comando primeiro verifica o destino e depois copia apenas os arquivos que não existem no destino. Ao contrário do sincronizar comando, o cp e MV Os comandos movem os dados de origem para destino, mesmo que o arquivo com o mesmo nome já exista no destino.

ubuntu@ubuntu: ~ sync s3 \
(sincronize o diretório local ao S3)

O comando acima sincronizará todos os dados do diretório local ao balde S3 e copiará apenas os arquivos que não estão presentes no balde de destino S3.

Agora sincronizaremos o balde S3 com o diretório local usando o sincronizar comando com a interface da linha de comando da AWS.

ubuntu@ubuntu: ~ sync s3 \
(Sync S3 ao diretório local)

O comando acima sincronizará todos os dados do balde S3 ao diretório local e copiará apenas os arquivos que não existem no destino, pois já sincronizamos o balde S3 e o diretório local; portanto, nenhum dado foi copiado desta vez.

Excluindo dados do balde S3

Na seção anterior, discutimos diferentes métodos para inserir os dados no balde AWS S3 usando cp, MV, e sincronizar comandos. Agora nesta seção, discutiremos diferentes métodos e parâmetros para excluir os dados do balde S3 usando a AWS CLI.

Para excluir um arquivo de um balde S3, o rm O comando é usado. A seguir está a sintaxe para usar o rm comando para remover o objeto S3 (um arquivo) usando a interface da linha de comando da AWS.

ubuntu@ubuntu: ~ $ aws s3 rm \
s3: // linuxhint-demo-s3-bucket/cópia de dados.TXT

Executar o comando acima excluirá apenas um único arquivo no balde S3. Para excluir uma pasta completa que contém vários arquivos, o -recursivo a opção é usada com este comando.

Para excluir uma pasta nomeada arquivos que contém vários arquivos dentro, o seguinte comando pode ser usado.

ubuntu@ubuntu: ~ $ aws s3 rm \
s3: // linuxhint-demo-s3-bucket/arquivos \
--recursivo

O comando acima removerá todos os arquivos de todas as pastas no balde S3 e depois removerá as pastas. Da mesma forma, podemos usar o -recursivo opção junto com o S3 RM Método para esvaziar um balde S3 inteiro.

ubuntu@ubuntu: ~ $ aws s3 rm \
s3: // linuxhint-demo-s3-bucket \
--recursivo

Excluindo um balde S3

Nesta seção do artigo, discutiremos como podemos excluir um balde S3 na AWS usando a interface da linha de comando. O rb A função é usada para excluir o balde S3, que aceita o nome do balde S3 como um parâmetro. Antes de remover o balde S3, você deve primeiro esvaziar o balde S3 removendo todos os dados usando o rm método. Quando você exclui um balde S3, o nome do balde está disponível para uso para outros.

Antes de excluir o balde, esvazie o balde S3 removendo todos os dados usando o rm Método do S3.

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

Depois de esvaziar o balde S3, você pode usar o rb Método do S3 comando para excluir o balde S3.

ubuntu@ubuntu: ~ $ aws s3 rb \

Versão do balde

Para manter as múltiplas variantes de um objeto S3 no S3, o versão do balde S3 pode ser ativado. Quando a versão do balde está ativada, você pode acompanhar as alterações que fez em um objeto de balde S3. Nesta seção, usaremos a CLI da AWS para configurar a versão do S3 Bucket.

Primeiro, verifique o status de versão do bucket do seu balde S3 com o seguinte comando.

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

Como a versão do balde não está ativada, o comando acima não gerou nenhuma saída.

Depois de verificar o status de versão do balde S3, agora ative a versão do balde usando o seguinte comando no terminal. Antes de ativar a versão, lembre -se de que a versão não pode ser desativada após habilitá.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-versioning \
--balde \
--status de configuração de versão de versão = ativado

Este comando não gerará nenhuma saída e habilitará com sucesso a versão do balde S3.

Agora, novamente, verifique o status da versão do balde S3 do seu bucket S3 com o seguinte comando.

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

Se a versão do balde estiver ativada, ele poderá ser suspenso usando o seguinte comando no terminal.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-versioning \
--balde \
--status de configuração de versão de versão = suspenso

Depois de suspender a versão do S3 Bucket, o seguinte comando pode ser usado para verificar novamente o status da versão do balde.

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

Criptografia padrão

Para garantir que todos os objetos no balde S3 sejam criptografados, a criptografia padrão pode ser ativada no S3. Depois de ativar a criptografia padrão, sempre que você colocar um objeto no balde, ele será automaticamente criptografado. Nesta seção do blog, usaremos a CLI da AWS para configurar a criptografia padrão em um balde S3.

Primeiro, verifique o status da criptografia padrão do seu balde S3 usando o Get-Bucket-Encryption Método do S3API. Se a criptografia padrão do balde não estiver ativada, ele jogará ServersideEncryPtionConfigurationNotFoundError exceção.

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

Agora para ativar a criptografia padrão, o Put-Bucket-Encryption Método será usado.

ubuntu@ubuntu: ~ $ AWS S3API Put-Bucket-Encryption \
--balde \

-Configuração do lado do servidor '“Regras”: [“AplicaçãoServerSideEncryPtionByDefault”: “ssealgorithm”: “aes256”]' '

O comando acima permitirá a criptografia padrão e todo objeto será criptografado usando a criptografia do lado do servidor AES-256 quando colocado no balde S3.

Depois de ativar a criptografia padrão, agora verifique novamente o status da criptografia padrão usando o seguinte comando.

Se a criptografia padrão estiver ativada, você poderá desativar a criptografia padrão usando o seguinte comando no terminal.

ubuntu@ubuntu: ~ $ AWS S3API DELETE-BUCKET-ENCRIPTION \
--balde

Agora, se você verificar o status de criptografia padrão novamente, ele jogará o ServersideEncryPtionConfigurationNotFoundError exceção.

Política de balde S3

A política de balde S3 é usada para permitir que outros serviços da AWS dentro ou através das contas acessem o balde S3. É usado para gerenciar a permissão do balde S3. Nesta seção do blog, usaremos a AWS CLI para configurar as permissões de balde S3 aplicando a política de balde S3.

Primeiro, verifique a política de balde S3 para ver se existe ou não em qualquer balde S3 específico usando o seguinte comando no terminal.

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

Se o balde S3 não tiver nenhuma política de balde associada ao balde, ele lançará o erro acima no terminal.

Agora vamos configurar a política de balde S3 para o balde S3 existente. Para isso, primeiro, precisamos criar um arquivo que contenha a política no formato JSON. Crie um arquivo chamado política.JSON e cole o seguinte conteúdo lá. Mude a política e coloque seu nome de balde S3 antes de usá -lo.


"Declaração": [

"Effect": "nega",
"Diretor": "*",
"Ação": "S3: GetObject",
"Recurso": "arn: aws: s3 ::: mys3bucket/*"

]

Agora execute o seguinte comando no terminal para aplicar esta política ao balde S3.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-policy \
--balde \
--Arquivo de Política: // Política.JSON

Depois de aplicar a política, agora verifique o status da política de balde executando o seguinte comando no terminal.

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

Para excluir a política de balde S3 anexada ao balde S3, o seguinte comando pode ser executado no terminal.

ubuntu@ubuntu: ~ $ aws s3api delete-bucket-policy \
--balde

Loging de acesso ao servidor

Para registrar todas as solicitações feitas a um balde S3 em outro balde S3, o log de acesso ao servidor deve ser ativado para um balde S3. Nesta seção do blog, discutiremos como podemos configurar o servidor Acesso de acesso e S3 Bucket usando a interface da linha de comando da AWS.

Primeiro, obtenha o status atual do log de acesso ao servidor para um balde S3 usando o seguinte comando no terminal.

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

Quando o log de acesso ao servidor não está ativado, o comando acima não lançará nenhuma saída no terminal.

Depois de verificar o status do log, agora tentamos ativar o registro no balde S3 para colocar toras em outro destino S3 Bucket. Antes de ativar o registro, verifique se o balde de destino possui uma política anexada que permite ao balde de origem colocar dados nele.

Primeiro, crie um arquivo chamado exploração madeireira.JSON e cole o seguinte conteúdo lá e substitua o TargetBucket pelo nome do balde de destino S3.


"LoggingEnabled":
"Targetbucket": "Mybucket",
"TargetPrefix": "Logs/"

Agora use o seguinte comando para ativar o registro em um balde S3.

ubuntu@ubuntu: ~ $ aws s3api put-bucket lançando \
--balde \
--Arquivo de status-status de lançamento de balde: // log.JSON

Depois de ativar o log de acesso ao servidor no balde S3, você pode verificar novamente o status do log S3 usando o seguinte comando.

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

Notificação de eventos

O AWS S3 nos fornece uma propriedade para acionar uma notificação quando um evento específico ocorre ao S3. Podemos usar notificações de eventos S3 para acionar tópicos do SNS, uma função lambda ou uma fila Sqs. Nesta seção, veremos como podemos configurar as notificações do evento S3 usando a interface da linha de comando da AWS.

Primeiro de tudo, use o Configuração de Notificação Get-Bucket Método do S3API Para obter o status da notificação do evento em um balde específico.

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

Se o balde S3 não tiver nenhuma notificação de evento configurada, ele não gerará nenhuma saída no terminal.

Para permitir uma notificação de evento para acionar o tópico do SNS, primeiro você precisa anexar uma política ao tópico do SNS que permite ao balde S3 acionar. Depois disso, você precisa criar um arquivo chamado notificação.JSON, que inclui os detalhes do tópico do SNS e do evento S3. Criar um arquivo notificação.JSON e cole o seguinte conteúdo lá.


"TopicConfigurações": [

"Toplan": "ARN: AWS: SNS: US-WEST-2: 123456789012: S3-Notification-tópico",
"Eventos": [
"S3: ObjectCreated:*"
]

]

De acordo com a configuração acima, sempre que você colocar um novo objeto no balde S3, ele aciona o tópico SNS definido no arquivo.

Depois de criar o arquivo, agora crie a notificação do evento S3 no seu balde S3 específico com o seguinte comando.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-notificação-configuração \
--balde \
--Arquivo de configuração de notificação: // notificação.JSON

O comando acima criará uma notificação de evento S3 com as configurações fornecidas no notificação.JSON arquivo.

Depois de criar a notificação do evento S3, agora liste novamente todas as notificações de eventos usando o seguinte comando da AWS CLI.

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

Este comando listará a notificação de eventos acima da adição na saída do console. Da mesma forma, você pode adicionar várias notificações de eventos a um único balde S3.

Regras do ciclo de vida

O balde S3 fornece regras do ciclo de vida para gerenciar o ciclo de vida dos objetos armazenados no balde S3. Esse recurso pode ser usado para especificar o ciclo de vida das diferentes versões dos objetos S3. Os objetos S3 podem ser movidos para diferentes classes de armazenamento ou podem ser excluídos após um período de tempo específico. Nesta seção do blog, veremos como podemos configurar as regras do ciclo de vida usando a interface da linha de comando.

Primeiro de tudo, obtenha todas as regras do ciclo de vida do balde S3 configuradas em um balde usando o seguinte comando.

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

Se as regras do ciclo de vida não estiverem configuradas com o balde S3, você receberá o NosuchlifeCycleConfiguration exceção em resposta.

Agora vamos criar uma configuração de regra do ciclo de vida usando a linha de comando. O put-bucket-lifecycle O método pode ser usado para criar a regra de configuração do ciclo de vida.

Primeiro de tudo, crie um regras.JSON arquivo que inclui as regras do ciclo de vida no formato JSON.


"Regras": [

"ID": "Mudar para a geleira depois de 1 meses",
"Prefixo": "Dados/",
"Status": "habilitado",
"Transição":
"Days": 30,
"StorageClass": "Glacier"

,

"Expiração":
"Data": "2025-01-01T00: 00: 00.000Z "
,
"ID": "Exclua dados em 2025.",
"Prefixo": "Old-Data/",
"Status": "habilitado"

]

Depois de criar o arquivo com regras no formato JSON, agora crie a regra de configuração do ciclo de vida usando o seguinte comando.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-lifecycle \
--balde \
--Arquivo de configuração do ciclo de vida: // Regras.JSON

O comando acima criará com sucesso uma configuração do ciclo de vida e você pode obter a configuração do ciclo de vida usando o Get-Bucket-Lifecycle método.

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

O comando acima listará todas as regras de configuração criadas para o ciclo de vida. Da mesma forma, você pode excluir a regra de configuração do ciclo de vida usando o Delete-bucket-lifecycle método.

ubuntu@ubuntu: ~ $ aws s3api delete-bucket-lifecycle \
--balde

O comando acima excluirá com sucesso as configurações do ciclo de vida do balde S3.

Regras de replicação

As regras de replicação em baldes S3 são usadas para copiar objetos específicos de um balde de origem S3 para um balde de destino S3 dentro da mesma conta ou conta diferente. Além disso, você pode especificar a classe de armazenamento de destino e a opção de criptografia na configuração da regra de replicação. Nesta seção, aplicaremos a regra de replicação em um balde S3 usando a interface da linha de comando.

Primeiro, obtenha todas as regras de replicação configuradas em um balde S3 usando o Get-Bucket-replicação método.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-replicação \
--balde

Se não houver regra de replicação configurada com um balde S3, o comando jogará o ReplicaçãoConfigurationNotFoundError exceção.

Para criar uma nova regra de replicação usando a interface da linha de comando, primeiro, você precisa ativar a versão no balde de origem e destino S3. Habilitando o versão foi discutido anteriormente neste blog.

Depois de ativar a versão do balde S3 no balde de origem e destino, agora crie um replicação.JSON arquivo. Este arquivo inclui a configuração das regras de replicação no formato JSON. Substitua o Iam_role_arn e Destino_bucket_arn Na configuração a seguir antes de criar a regra de replicação.


"Role": "iam_role_arn",
"Regras": [

"Status": "habilitado",
"Prioridade": 100,
"DeleteMarkerReplication": "Status": "Habiled",
"Filtro": "prefix": "dados",
"Destino":
"Bucket": "Destination_bucket_arn"


]

Depois de criar o replicação.JSON arquivo, agora crie a regra de replicação usando o seguinte comando.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-replicação \
--balde \
--Arquivo de configuração de replicação: // replicação.JSON

Depois de executar o comando acima, ele criará uma regra de replicação no balde de origem S3, que copiará automaticamente os dados para o balde de destino S3 especificado no replicação.JSON arquivo.

Da mesma forma, você pode excluir a regra de replicação do balde S3 usando o excluir-se-replicação de exclusão Método na interface da linha de comando.

ubuntu@ubuntu: ~ $ AWS S3API Delete-bucket-replicação \
--balde

Conclusão

Este blog descreve como podemos usar a interface da linha de comando da AWS para executar operações básicas a avançadas, como criar e excluir um balde S3, inserir e excluir dados do balde S3, ativar a criptografia padrão, versionamento, acesso ao servidor, notificação de eventos, regras de replicação e configurações de ciclo de vida. Essas operações podem ser automatizadas usando os comandos da interface da linha de comando da AWS em seus scripts e, portanto, ajudam a automatizar o sistema.