Comment utiliser AWS CLI pour gérer les seaux AWS S3

Comment utiliser AWS CLI pour gérer les seaux AWS S3
«AWS CLI peut être utilisé pour effectuer différents seaux S3 ainsi que des opérations au niveau de l'objet. L'utilisation d'AWS CLI pour effectuer différentes opérations sur les seaux S3 est un moyen rapide de contrôler le service AWS S3. Des opérations S3 simples comme la création, la suppression et l'insertion des données dans le seau S3 peuvent être automatisées en utilisant la fonction de ligne de commande AWS. Nous pouvons écrire différents scripts pour effectuer différentes opérations sur S3. Il est important d'utiliser l'interface de ligne de commande AWS lorsque vous souhaitez insérer ou supprimer des données à S3 via certains scripts. Avant d'utiliser l'interface de ligne de commande AWS, vous devriez avoir une compréhension de base des différentes commandes utilisées pour gérer le seau S3."

Dans ce blog, nous discuterons de certaines commandes de base utilisées pour gérer les seaux S3 à l'aide de l'interface de ligne de commande. Dans cet article, nous discuterons des opérations suivantes qui peuvent être effectuées sur S3.

  • Création d'un seau S3
  • Insérer des données dans le seau S3
  • Suppression des données du seau S3
  • Suppression d'un seau S3
  • Version de seau
  • Cryptage par défaut
  • Politique du seau S3
  • Journalisation d'accès au serveur
  • Notification d'événement
  • Règles de cycle de vie
  • Règles de réplication

Avant de démarrer ce blog, vous devez d'abord configurer les informations d'identification AWS pour utiliser l'interface de ligne de commande sur votre système. Visitez le blog suivant pour en savoir plus sur la configuration des informations d'identification de ligne de commande AWS sur votre système.

https: // linuxhint.com / Configure-aws-Cli-Credentials /

Création d'un seau S3

La première étape pour gérer les opérations de seau S3 à l'aide de l'interface de ligne de commande AWS consiste à créer le seau S3. Vous pouvez utiliser le mb Méthode de la S3 commande pour créer le seau S3 sur AWS. Voici la syntaxe pour utiliser le mb méthode de S3 Pour créer le seau S3 en utilisant AWS CLI.

ubuntu @ ubuntu: ~ $ aws s3 mb

Le nom du seau est universellement unique, donc avant de créer un seau S3, assurez-vous qu'il n'est déjà pris par aucun autre compte AWS. La commande suivante créera le seau S3 nommé Linuxhint-Demo-S3-Bucket.

ubuntu @ ubuntu: ~ $ aws s3 mb \
S3: // Linuxhint-Demo-S3-Bucket \
--région US-West-2

La commande ci-dessus créera un seau S3 dans la région des États-Unis-Ouest-2.

Après avoir créé le seau S3, utilisez maintenant le LS Méthode de la S3 Pour vous assurer si le seau est créé ou non.

ubuntu @ ubuntu: ~ $ aws s3 ls

Vous obtiendrez l'erreur suivante sur le terminal si vous essayez d'utiliser un nom de seau qui existe déjà.

Insérer des données dans le seau S3

Après avoir créé le seau S3, il est maintenant temps de mettre des données dans le seau S3. Afin de déplacer les données dans le seau S3, les commandes suivantes sont disponibles.

  • CP
  • mv
  • synchronisation

Le CP La commande est utilisée pour copier les données du système local vers le seau S3 et vice versa à l'aide d'AWS CLI. Il peut également être utilisé pour copier les données d'un seau S3 source à un autre seau S3 de destination. La syntaxe pour copier les données vers et depuis le seau S3 est comme ci-dessous.

ubuntu @ ubuntu: ~ $ aws s3 cp \
(Copier du local à S3) Ubuntu @ Ubuntu: ~ $ aws s3 cp \
(Copier de S3 à Local) Ubuntu @ Ubuntu: ~ $ AWS S3 CP \
(Copier d'un S3 à un autre)

Le mv Méthode de la S3 est utilisé pour déplacer les données du système local vers le seau S3 ou vice versa en utilisant la CLI AWS. Tout comme le CP commande, nous pouvons utiliser le mv Commande pour déplacer les données d'un seau S3 vers un autre seau S3. Voici la syntaxe pour utiliser le mv Commande avec AWS CLI.

ubuntu @ ubuntu: ~ $ aws s3 mv \
(passer du local à s3) Ubuntu @ Ubuntu: ~ $ aws s3 mv \
(passer de S3 à local) Ubuntu @ Ubuntu: ~ $ aws s3 mv \
(passer d'un S3 à un autre S3)

Le synchronisation La commande dans l'interface de ligne de commande AWS S3 est utilisée pour synchroniser un répertoire local et un seau S3 ou deux seaux S3. Le synchronisation La commande vérifie d'abord la destination, puis copie uniquement les fichiers qui n'existent pas dans la destination. Contrairement au synchronisation commande, le CP et mv Les commandes déplacent les données de la source à la destination même si le fichier avec le même nom existe déjà sur la destination.

Ubuntu @ Ubuntu: ~ $ AWS S3 Sync \
(synchroniser le répertoire local à S3)

La commande ci-dessus synchronisera toutes les données du répertoire local vers le seau S3 et ne copiera que les fichiers qui ne sont pas présents dans le seau de destination S3.

Nous allons maintenant synchroniser le seau S3 avec le répertoire local en utilisant le synchronisation Commande avec l'interface de ligne de commande AWS.

Ubuntu @ Ubuntu: ~ $ AWS S3 Sync \
(Sync S3 avec le répertoire local)

La commande ci-dessus synchronisera toutes les données du seau S3 vers le répertoire local et ne copiera que les fichiers qui n'existent pas dans la destination car nous avons déjà synchronisé le seau S3 et le répertoire local, donc aucune donnée n'a été copiée cette fois.

Suppression des données du seau S3

Dans la section précédente, nous avons discuté de différentes méthodes pour insérer les données dans le seau AWS S3 en utilisant CP, mv, et synchronisation commandes. Maintenant dans cette section, nous discuterons de différentes méthodes et paramètres pour supprimer les données du seau S3 en utilisant AWS CLI.

Afin de supprimer un fichier d'un seau S3, le RM La commande est utilisée. Voici la syntaxe pour utiliser le RM Commande pour supprimer l'objet S3 (un fichier) à l'aide de l'interface de ligne de commande AWS.

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

L'exécution de la commande ci-dessus ne supprimera qu'un seul fichier dans le seau S3. Afin de supprimer un dossier complet qui contient plusieurs fichiers, le -récursif L'option est utilisée avec cette commande.

Afin de supprimer un dossier nommé des dossiers qui contient plusieurs fichiers à l'intérieur, la commande suivante peut être utilisée.

ubuntu @ ubuntu: ~ $ aws s3 rm \
S3: // Linuxhint-demo-S3-Bucket / Files \
--récursif

La commande ci-dessus supprimera d'abord tous les fichiers de tous les dossiers du seau S3, puis supprimera les dossiers. De même, nous pouvons utiliser le -récursif option avec le S3 RM Méthode pour vider un seau S3 entier.

ubuntu @ ubuntu: ~ $ aws s3 rm \
S3: // Linuxhint-Demo-S3-Bucket \
--récursif

Suppression d'un seau S3

Dans cette section de l'article, nous discuterons de la façon dont nous pouvons supprimer un seau S3 sur AWS en utilisant l'interface de ligne de commande. Le RB La fonction est utilisée pour supprimer le seau S3, qui accepte le nom du seau S3 en tant que paramètre. Avant de retirer le seau S3, vous devez d'abord vider le seau S3 en supprimant toutes les données à l'aide du RM méthode. Lorsque vous supprimez un seau S3, le nom du seau est disponible pour les autres.

Avant de supprimer le seau, videz le seau S3 en supprimant toutes les données à l'aide du RM Méthode de la S3.

ubuntu @ ubuntu: ~ $ aws s3 rm \
\
--récursif

Après avoir violé le seau S3, vous pouvez utiliser le RB Méthode de la S3 commande pour supprimer le seau S3.

ubuntu @ ubuntu: ~ $ aws s3 rb \

Version de seau

Afin de conserver les multiples variantes d'un objet S3 dans S3, le versioning de godet S3 peut être activé. Lorsque le versioning du seau est activé, vous pouvez garder une trace des modifications que vous avez apportées à un objet Bucket S3. Dans cette section, nous utiliserons le CLI AWS pour configurer le versioning du seau S3.

Tout d'abord, vérifiez l'état du versioning du seau de votre seau S3 avec la commande suivante.

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

Comme le versioning de seau n'est pas activé, la commande ci-dessus n'a généré aucune sortie.

Après avoir vérifié le statut de version S3 Bucket, activez désormais le versioning du seau à l'aide de la commande suivante dans le terminal. Avant d'activer le versioning, gardez à l'esprit que le versioning ne peut pas être désactivé après l'activer, mais vous pouvez le suspendre.

Ubuntu @ Ubuntu: ~ $ AWS S3API Put-Bucket-Versioning \
--seau \
--Statut de version-configuration de version = activé

Cette commande ne générera aucune sortie et permettra avec succès le versioning de godet S3.

Maintenant encore, vérifiez l'état du versement S3 Bucket de votre seau S3 avec la commande suivante.

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

Si le versioning du seau est activé, il peut être suspendu en utilisant la commande suivante dans le terminal.

Ubuntu @ Ubuntu: ~ $ AWS S3API Put-Bucket-Versioning \
--seau \
--Statut de version-configuration de version = suspendu

Après avoir suspendu le versioning du seau S3, la commande suivante peut être utilisée pour vérifier à nouveau l'état du versioning du seau.

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

Cryptage par défaut

Afin de s'assurer que chaque objet du seau S3 est chiffré, le cryptage par défaut peut être activé dans S3. Après avoir activé le cryptage par défaut, chaque fois que vous mettez un objet dans le seau, il sera automatiquement crypté. Dans cette section du blog, nous utiliserons la CLI AWS pour configurer le cryptage par défaut sur un seau S3.

Tout d'abord, vérifiez l'état du chiffrement par défaut de votre seau S3 à l'aide du cryptage get-buck Méthode de la S3API. Si le cryptage par défaut du seau n'est pas activé, il lancera ServersideencryptionConfigurationnotfounonerror exception.

Ubuntu @ Ubuntu: ~ $ AWS S3API Get-Bucket-Encryption \
--seau

Maintenant, afin d'activer le chiffrement par défaut, le cryptage de putting la méthode sera utilisée.

Ubuntu @ Ubuntu: ~ $ AWS S3API Put-Bucket-Encryption \
--seau \

-Server-Side-Encryption-Configuration '"Rules": ["ApplyServerSideencryByDefault": "Ssealgorithm": "AES256"]'

La commande ci-dessus permettra le cryptage par défaut, et chaque objet sera chiffré à l'aide du chiffrement côté serveur AES-256 lorsqu'il est placé dans le seau S3.

Après avoir activé le chiffrement par défaut, vérifiez à nouveau l'état du cryptage par défaut à l'aide de la commande suivante.

Si le chiffrement par défaut est activé, vous pouvez désactiver le cryptage par défaut en utilisant la commande suivante dans le terminal.

Ubuntu @ Ubuntu: ~ $ AWS S3API DELETE-BUCKET-CRYPTION \
--seau

Maintenant, si vous vérifiez à nouveau l'état de cryptage par défaut, il lancera le ServersideencryptionConfigurationnotfounonerror exception.

Politique du seau S3

La politique S3 Bucket est utilisée pour permettre à d'autres services AWS à l'intérieur ou à travers les comptes pour accéder au seau S3. Il est utilisé pour gérer l'autorisation du seau S3. Dans cette section du blog, nous utiliserons la CLI AWS pour configurer les autorisations S3 Bucket en appliquant la stratégie S3 Bucket.

Tout d'abord, vérifiez la stratégie S3 Bucket pour voir si elle existe ou non sur un seau S3 spécifique en utilisant la commande suivante dans le terminal.

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

Si le seau S3 n'a pas de politique de seau associée au seau, elle lancera l'erreur ci-dessus sur le terminal.

Maintenant, nous allons configurer la stratégie S3 Bucket au seau S3 existant. Pour cela, nous devons d'abord créer un fichier qui contient la politique au format JSON. Créer un fichier nommé politique.json et collez le contenu suivant là-dedans. Modifiez la politique et mettez votre nom de seau S3 avant de l'utiliser.


"Déclaration": [

"Effet": "nier",
"Principal": "*",
"Action": "S3: getObject",
"Ressource": "Arn: AWS: S3 ::: MyS3Bucket / *"

]]

Exécutez maintenant la commande suivante dans le terminal pour appliquer cette politique au seau S3.

Ubuntu @ Ubuntu: ~ $ AWS S3API Put-Bucket-Policy \
--seau \
--Fichier de stratégie: // stratégie.json

Après avoir appliqué la politique, vérifiez maintenant l'état de la politique de seau en exécutant la commande suivante dans le terminal.

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

Afin de supprimer la stratégie S3 Bucket attachée au seau S3, la commande suivante peut être exécutée dans le terminal.

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

Journalisation d'accès au serveur

Afin de enregistrer toutes les demandes faites à un seau S3 dans un autre seau S3, la journalisation d'accès au serveur doit être activée pour un seau S3. Dans cette section du blog, nous discuterons de la façon dont nous pouvons configurer la connexion d'accès au serveur et le seau S3 à l'aide de l'interface de ligne de commande AWS.

Tout d'abord, obtenez l'état actuel de la journalisation d'accès au serveur pour un seau S3 en utilisant la commande suivante dans le terminal.

Ubuntu @ Ubuntu: ~ $ AWS S3API Get-Bucket-Logging \
--seau

Lorsque la journalisation d'accès au serveur n'est pas activée, la commande ci-dessus ne lancera aucune sortie dans le terminal.

Après avoir vérifié l'état de l'exploitation forestière, nous essayons maintenant d'activer la journalisation sur le seau S3 pour mettre des journaux dans un autre seau S3 de destination. Avant d'activer la journalisation, assurez-vous que le seau de destination a une stratégie attachée qui permet au seau source de y mettre des données.

Tout d'abord, créez un fichier nommé enregistrement.json et collez le contenu suivant là-dedans et remplacez le TargetBucket par le nom du seau Target S3.


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

Utilisez maintenant la commande suivante pour activer la journalisation sur un seau S3.

Ubuntu @ Ubuntu: ~ $ AWS S3API Put-Bucket-Logging \
--seau \
--Fichier de statut-statut de seau: // journalisation.json

Après avoir activé la connexion d'accès au serveur sur le seau S3, vous pouvez à nouveau vérifier l'état de la journalisation S3 en utilisant la commande suivante.

Ubuntu @ Ubuntu: ~ $ AWS S3API Get-Bucket-Logging \
--seau

Notification d'événement

AWS S3 nous fournit une propriété pour déclencher une notification lorsqu'un événement spécifique se produit vers le S3. Nous pouvons utiliser des notifications d'événements S3 pour déclencher des sujets SNS, une fonction lambda ou une file d'attente SQS. Dans cette section, nous verrons comment nous pouvons configurer les notifications d'événements S3 à l'aide de l'interface de ligne de commande AWS.

Tout d'abord, utilisez le Get-Bucket-Notification-Configuration Méthode de la S3API Pour obtenir l'état de la notification de l'événement sur un seau spécifique.

Ubuntu @ Ubuntu: ~ $ AWS S3API Get-Bucket-Notification-Configuration \
--seau

Si le seau S3 n'a pas de notification d'événement configurée, elle ne générera aucune sortie sur le terminal.

Afin d'activer une notification d'événement pour déclencher le sujet SNS, vous devez d'abord joindre une politique au sujet SNS qui permet au seau S3 de le déclencher. Après cela, vous devez créer un fichier nommé notification.json, qui comprend les détails du sujet SNS et de l'événement S3. Créer un fichier notification.json et collez le contenu suivant là-dedans.


"TopicConfigurations": [

"Topicarn": "Arn: AWS: SNS: US-West-2: 123456789012: S3-notification-topic",
"Événements": [
"S3: ObjectCreated: *"
]]

]]

Selon la configuration ci-dessus, chaque fois que vous mettez un nouvel objet dans le seau S3, il déclenchera le sujet SNS défini dans le fichier.

Après avoir créé le fichier, créez maintenant la notification d'événement S3 sur votre seau S3 spécifique avec la commande suivante.

Ubuntu @ Ubuntu: ~ $ AWS S3API Put-Bucket-Notification-Configuration \
--seau \
--Fichier de configuration de notification: // Notification.json

La commande ci-dessus créera une notification d'événement S3 avec les configurations fournies dans le notification.json déposer.

Après avoir créé la notification de l'événement S3, énumérez à nouveau toutes les notifications de l'événement à l'aide de la commande AWS CLI suivante.

Ubuntu @ Ubuntu: ~ $ AWS S3API Get-Bucket-Notification-Configuration \
--seau

Cette commande répertorie la notification d'événement ci-dessus dans la sortie de la console. De même, vous pouvez ajouter plusieurs notifications d'événements à un seul seau S3.

Règles de cycle de vie

Le seau S3 fournit des règles de cycle de vie pour gérer le cycle de vie des objets stockés dans le seau S3. Cette fonctionnalité peut être utilisée pour spécifier le cycle de vie des différentes versions des objets S3. Les objets S3 peuvent être déplacés vers différentes classes de stockage ou peuvent être supprimées après une période spécifique. Dans cette section du blog, nous verrons comment nous pouvons configurer les règles du cycle de vie à l'aide de l'interface de ligne de commande.

Tout d'abord, obtenez toutes les règles de cycle de vie du seau S3 configurées dans un seau à l'aide de la commande suivante.

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

Si les règles du cycle de vie ne sont pas configurées avec le seau S3, vous obtiendrez le NoSuchlifecycleconfiguration exception en réponse.

Maintenant, créons une configuration de règle de cycle de vie en utilisant la ligne de commande. Le Put-Bucket-Lifecycle La méthode peut être utilisée pour créer la règle de configuration du cycle de vie.

Tout d'abord, créez un règles.json Fichier qui comprend les règles du cycle de vie au format JSON.


"Règles": [

"Id": "Déménager à Glacier après 1 mois",
"Préfixe": "Data /",
"Statut": "activé",
"Transition":
"Days": 30,
"StorageClass": "Glacier"

,

"Expiration":
"Date": "2025-01-01T00: 00: 00.000z "
,
"ID": "Supprimer les données en 2025.",
"Préfixe": "Old-Data /",
"Statut": "activé"

]]

Après avoir créé le fichier avec des règles au format JSON, créez maintenant la règle de configuration du cycle de vie en utilisant la commande suivante.

ubuntu @ ubuntu: ~ $ aws s3api put-bucket-lifecycle \
--seau \
--Fichier de configuration du cycle de vie: // Règles.json

La commande ci-dessus créera avec succès une configuration du cycle de vie, et vous pouvez obtenir la configuration du cycle de vie à l'aide du Get-Bucket-Lifecycle méthode.

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

La commande ci-dessus répertorie toutes les règles de configuration créées pour le cycle de vie. De même, vous pouvez supprimer la règle de configuration du cycle de vie à l'aide du Supprimer le Bucket-Lifecycle méthode.

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

La commande ci-dessus supprimera avec succès les configurations de cycle de vie du seau S3.

Règles de réplication

Les règles de réplication dans les seaux S3 sont utilisées pour copier des objets spécifiques d'un seau S3 source à un seau S3 de destination dans le même compte ou différent. Vous pouvez également spécifier la classe de stockage de destination et l'option de chiffrement dans la configuration de la règle de réplication. Dans cette section, nous appliquerons la règle de réplication sur un seau S3 à l'aide de l'interface de ligne de commande.

Tout d'abord, obtenez toutes les règles de réplication configurées sur un seau S3 à l'aide du Get-Bucket-Replication méthode.

Ubuntu @ Ubuntu: ~ $ AWS S3API Get-Bucket-Replication \
--seau

S'il n'y a pas de règle de réplication configurée avec un seau S3, la commande lancera le ReplicationConfigurationNtFounonError exception.

Afin de créer une nouvelle règle de réplication à l'aide de l'interface de ligne de commande, vous devez d'abord activer le versioning sur le seau source et de destination S3. L'activation du versioning a été discuté plus tôt dans ce blog.

Après avoir activé le versioning du seau S3 sur le seau source et de destination, créez maintenant un réplication.json déposer. Ce fichier comprend la configuration des règles de réplication au format JSON. Remplace le Iam_role_arn et Destination_bucket_arn dans la configuration suivante avant de créer la règle de réplication.


"Rôle": "iam_role_arn",
"Règles": [

"Statut": "activé",
"Priorité": 100,
"DeleteMarkerReplication": "Status": "Activé",
"Filter": "Prefix": "Data",
"Destination":
"Godet": "Destination_Bucket_arn"


]]

Après avoir créé le réplication.json fichier, créez maintenant la règle de réplication en utilisant la commande suivante.

Ubuntu @ Ubuntu: ~ $ AWS S3API Put-Bucket-Replication \
--seau \
--fichier de configuration de réplication: // réplication.json

Après avoir exécuté la commande ci-dessus, il créera une règle de réplication dans le seau S3 qui copiera automatiquement les données dans le godet S3 de destination spécifié dans le réplication.json déposer.

De même, vous pouvez supprimer la règle de réplication du seau S3 à l'aide du supprimer la réplication Méthode dans l'interface de ligne de commande.

Ubuntu @ Ubuntu: ~ $ AWS S3API DELELET-BUCKET-Replication \
--seau

Conclusion

Ce blog décrit comment nous pouvons utiliser l'interface de ligne de commande AWS pour effectuer des opérations de base à avancées, comme la création et la suppression d'un compartiment S3, l'insertion et la suppression des données du seau S3, permettant le cryptage par défaut, la version, la journalisation d'accès au serveur, la notification d'événement, les règles de réplication des règles de réplication et configurations de cycle de vie. Ces opérations peuvent être automatisées en utilisant les commandes d'interface de ligne de commande AWS dans vos scripts et aident donc à automatiser le système.