

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemples de commandes guidées pour l’AWS CLI
<a name="cli-chap-services"></a>

L’AWS Command Line Interface (AWS CLI) est un outil open-source qui vous permet d’interagir avec un large éventail de Services AWS à l’aide des commandes de votre shell de ligne de commande. Cette section fournit des exemples guidés qui montrent comment optimiser l’AWS CLI pour accéder à certains Services AWS. Cela inclut certaines commandes AWS CLI personnalisées, telles que les commandes `aws s3` de haut niveau. Ces exemples de commandes illustrent les actions courantes utilisées pour certains Services AWS et fournissent des ressources supplémentaires pour plus d’informations.

Que vous soyez un utilisateur AWS expérimenté ou un débutant avec l’AWS CLI, ces exemples guidés constituent une ressource pour rationaliser vos opérations AWS.

Pour une référence complète de toutes les commandes disponibles pour chaque Service AWS, consultez le [guide de référence de l’AWS CLI version 2.](https://docs.aws.amazon.com/cli/latest/reference/index.html) En outre, vous pouvez utiliser l’[aide de ligne de commande intégrée](cli-usage-help.md) pour explorer la gamme de commandes Services AWS, d’options et de fonctionnalités de l’AWS CLI.

Pour d’autres exemples de commandes qui ne sont pas disponibles dans cette section, consultez la section [AWS CLI exemples de commandes](cli_code_examples.md). Il s’agit d’exemples de commandes open source qui sont également disponibles dans le [guide de référence de l’AWS CLI version 2](https://docs.aws.amazon.com/cli/latest/reference/index.html). Les exemples de commandes sont hébergés dans le référentiel de l’[AWS CLI](https://github.com/aws/aws-cli/tree/develop/awscli/examples) sur *GitHub*.



 Pour des exemples de scripts bash open source, consultez [AWS CLI avec des exemples de code de script Bash](bash_code_examples.md). Les exemples de scripts bash sont hébergés dans le [Référentiel d’exemples de code AWS](https://github.com/awsdocs/aws-doc-sdk-examples) sur *GitHub*.

**Topics**
+ [DynamoDB](cli-services-dynamodb.md)
+ [Amazon EC2](cli-services-ec2.md)
+ [Amazon Glacier](cli-services-glacier.md)
+ [IAM](cli-services-iam.md)
+ [Amazon S3](cli-services-s3.md)
+ [Amazon SNS](cli-services-sns.md)

# Utilisation d’Amazon DynamoDB dans l’AWS CLI
<a name="cli-services-dynamodb"></a>

L’AWS Command Line Interface (AWS CLI) assure la prise en charge de tous les services de base de données AWS, y compris Amazon DynamoDB. Vous pouvez utiliser l’AWS CLI pour les opérations impromptues, telles que la création d’une table. Vous pouvez également l’utiliser pour incorporer des opérations DynamoDB au sein de scripts utilitaires. 

Pour plus d’informations sur l’utilisation de l’AWS CLI avec DynamoDB, consultez ```[dynamodb](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/index.html)` dans la *Référence des commandes de l’AWS CLI*.

Pour afficher les commandes de l’AWS CLI pour DynamoDB, utilisez la commande suivante.

```
$ aws dynamodb help
```

**Topics**
+ [Prérequis](#cli-services-dynamodb-prereqs)
+ [Création et utilisation de tables DynamoDB](#cli-services-dynamodb-using)
+ [Utilisation de DynamoDB Local](#cli-services-dynamodb-local)
+ [Ressources](#cli-services-dynamodb-resources)

## Prérequis
<a name="cli-services-dynamodb-prereqs"></a>

Pour exécuter les commandes `dynamodb`, vous devez respecter les conditions requises suivantes :
+ Installez et configurez l’AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).

## Création et utilisation de tables DynamoDB
<a name="cli-services-dynamodb-using"></a>

Le format de ligne de commande se compose d’un nom de commande DynamoDB, suivi des paramètres de cette commande. L’AWS CLI prend en charge la [syntaxe raccourcie](cli-usage-shorthand.md) de l’interface de ligne de commande pour les valeurs des paramètres, ainsi que l’intégralité du texte JSON.

L’exemple suivant crée une table nommée `MusicCollection`. 

```
$ aws dynamodb create-table \
    --table-name MusicCollection \
    --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
```

Vous pouvez ajouter de nouvelles lignes à la table avec des commandes similaires à celles indiquées dans l’exemple suivant. Ces exemples utilisent une combinaison de la syntaxe raccourcie et de JSON.

```
$ aws dynamodb put-item \
    --table-name MusicCollection \
    --item '{
        "Artist": {"S": "No One You Know"},
        "SongTitle": {"S": "Call Me Today"} ,
        "AlbumTitle": {"S": "Somewhat Famous"} 
      }' \
    --return-consumed-capacity TOTAL
{
    "ConsumedCapacity": {
        "CapacityUnits": 1.0,
        "TableName": "MusicCollection"
    }
}
```

```
$ aws dynamodb put-item \
    --table-name MusicCollection \
    --item '{ 
        "Artist": {"S": "Acme Band"}, 
        "SongTitle": {"S": "Happy Day"} , 
        "AlbumTitle": {"S": "Songs About Life"} 
      }' \
    --return-consumed-capacity TOTAL
{
    "ConsumedCapacity": {
        "CapacityUnits": 1.0,
        "TableName": "MusicCollection"
    }
}
```

Il peut être difficile de composer un JSON valide sur une seule ligne de commande. Pour simplifier le processus, l’AWS CLI peut lire des fichiers JSON. Par exemple, imaginons l’extrait JSON suivant qui est stocké dans un fichier nommé `expression-attributes.json`.

```
{
  ":v1": {"S": "No One You Know"},
  ":v2": {"S": "Call Me Today"}
}
```

Vous pouvez utiliser ce fichier pour émettre une demande `query` à l’aide de l’AWS CLI. Dans l’exemple suivant, le contenu du fichier `expression-attributes.json` est utilisé pour le paramètre `--expression-attribute-values`.

```
$ aws dynamodb query --table-name MusicCollection \
    --key-condition-expression "Artist = :v1 AND SongTitle = :v2" \
    --expression-attribute-values file://expression-attributes.json
{
    "Count": 1,
    "Items": [
        {
            "AlbumTitle": {
                "S": "Somewhat Famous"
            },
            "SongTitle": {
                "S": "Call Me Today"
            },
            "Artist": {
                "S": "No One You Know"
            }
        }
    ],
    "ScannedCount": 1,
    "ConsumedCapacity": null
}
```

## Utilisation de DynamoDB Local
<a name="cli-services-dynamodb-local"></a>

En plus de DynamoDB, vous pouvez utiliser l’AWS CLI avec DynamoDB Local. DynamoDB Local est une petite base de données côté client et un serveur qui imite le service DynamoDB. DynamoDB Local vous permet d’écrire des applications qui utilisent l’API DynamoDB, sans manipuler de tables ni de données dans le service web DynamoDB. Au lieu de cela, toutes les actions d’API sont redirigées vers une base de données locale. Cela vous permet d’économiser sur le débit alloué, le stockage de données et les frais de transfert de données.

Pour plus d’informations sur DynamoDB Local et son utilisation avec l’AWS CLI, consultez les sections suivantes du [Manuel du développeur Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/) :
+ [DynamoDB Local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.html)
+ [Utilisation de l’AWS CLI avec DynamoDB Local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.CLI.html#UsingWithDDBLocal)

## Ressources
<a name="cli-services-dynamodb-resources"></a>

**Référence de l’AWS CLI :**
+ [https://docs.aws.amazon.com/cli/latest/reference/dynamodb/index.html](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/index.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/dynamodb/create-table.html](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/create-table.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/dynamodb/put-item.html](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/put-item.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/dynamodb/query.html](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/query.html)

**Référence du service :**
+ [DynamoDB Local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.html) dans le Manuel du développeur Amazon DynamoDB
+ [Utilisation de l’AWS CLI avec DynamoDB Local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.CLI.html#UsingWithDDBLocal) dans le Manuel du développeur Amazon DynamoDB

# Utilisation d’Amazon EC2 dans l’AWS CLI
<a name="cli-services-ec2"></a>


| Présentation d’Amazon Elastic Compute Cloud | 
| --- | 
|  [![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/TsRBftzZsQo/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/TsRBftzZsQo)  | 

Amazon Elastic Compute Cloud (Amazon EC2) fournit des environnements d’informatique virtuelle hautement évolutifs et flexibles. Amazon EC2 vous permet de provisionner et de gérer des serveurs virtuels, appelés instances Amazon EC2, afin de répondre à un large éventail de besoins informatiques.

Les instances Amazon EC2 sont des machines virtuelles qui peuvent être personnalisées avec diverses configurations de capacité d’UC, de mémoire, de stockage et de mise en réseau. Vous pouvez choisir parmi une sélection variée de types d’instances, allant d’options légères et économiques à des instances puissantes et performantes, en fonction des exigences de votre application. Cette flexibilité vous permet de répondre à vos besoins informatiques afin d’optimiser les performances et la rentabilité. 

En outre, Amazon EC2 propose une suite de fonctionnalités qui vous permettent de gérer efficacement vos ressources informatiques. Il s’agit notamment de la possibilité de lancer rapidement de nouvelles instances, de créer des AMI (Amazon Machine Images) personnalisées pour un déploiement rapide et d’augmenter ou de réduire la capacité de calcul selon les besoins. 

Vous pouvez accéder aux fonctionnalités d’Amazon EC2 à l’aide de l’AWS Command Line Interface (AWS CLI). Pour afficher les commandes de l’AWS CLI pour Amazon EC2, utilisez la commande suivante.

```
aws ec2 help
```

Avant d’exécuter des commandes, définissez vos informations d’identification par défaut. Pour plus d’informations, consultez [Configuration des paramètres de l’AWS CLI](cli-chap-configure.md).

Cette rubrique montre des exemples de commandes AWS CLI abrégées qui effectuent des tâches courantes d’Amazon EC2.

Pour des exemples de commandes AWS CLI détaillées, consultez le [Référentiel d’exemples de code de l’AWS CLI](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli) sur *GitHub*.

**Topics**
+ [Création, affichage et suppression de paires de clés Amazon EC2 dans AWS CLI](cli-services-ec2-keypairs.md)
+ [Création, configuration et suppression de groupes de sécurité Amazon EC2 dans le AWS CLI](cli-services-ec2-sg.md)
+ [Lancement, mise en vente et suppression d'instances Amazon EC2 dans AWS CLI](cli-services-ec2-instances.md)
+ [Modifiez le type d'instance Amazon EC2 à l'aide d'un script bash dans le AWS CLI](cli-services-ec2-instance-type-script.md)

# Création, affichage et suppression de paires de clés Amazon EC2 dans AWS CLI
<a name="cli-services-ec2-keypairs"></a>

Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour créer, afficher et supprimer vos paires de clés pour Amazon Elastic Compute Cloud (Amazon EC2). Vous pouvez utiliser des paires clés pour vous connecter à une instance Amazon EC2. Vous devez fournir la paire de clés à Amazon EC2 quand vous créez l’instance, puis utiliser cette paire de clés pour vous authentifier quand vous vous connectez à l’instance.

**Note**  
Pour des exemples de commandes supplémentaires, consultez le [de référence](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**Topics**
+ [Conditions préalables](#cli-services-ec2-keypairs-prereqs)
+ [Création d’une paire de clés](#creating-a-key-pair)
+ [Affichage de votre paire de clés](#displaying-a-key-pair)
+ [Suppression de votre paire de clés](#deleting-a-key-pair)
+ [Références](#cli-services-ec2-keypairs-references)

## Conditions préalables
<a name="cli-services-ec2-keypairs-prereqs"></a>

Pour exécuter les commandes `ec2`, vous devez respecter les conditions requises suivantes :
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Définissez vos autorisations IAM pour autoriser l’accès Amazon EC2. Pour plus d’informations sur les autorisations IAM pour Amazon EC2, consultez [Politiques IAM pour Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Création d’une paire de clés
<a name="creating-a-key-pair"></a>

Pour créer une paire de clés, utilisez la commande `[aws ec2 create-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-key-pair.html)` avec l’option `--query`, ainsi que l’option `--output text` pour rediriger votre clé privée directement dans un fichier.

```
$ aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pem
```

En effet PowerShell, la `> file` redirection utilise par défaut le codage UTF-8, qui ne peut pas être utilisé avec certains clients SSH. Par conséquent, vous devez convertir la sortie en la transférant vers la commande `out-file` et explicitement définir l’encodage pour `ascii`.

```
PS C:\>aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text | out-file -encoding ascii -filepath MyKeyPair.pem
```

Le fichier `MyKeyPair.pem` qui en résulte ressemble à ce qui suit.

```
-----BEGIN RSA PRIVATE KEY-----
EXAMPLEKEYKCAQEAy7WZhaDsrA1W3mRlQtvhwyORRX8gnxgDAfRt/gx42kWXsT4rXE/b5CpSgie/
vBoU7jLxx92pNHoFnByP+Dc21eyyz6CvjTmWA0JwfWiW5/akH7iO5dSrvC7dQkW2duV5QuUdE0QW
Z/aNxMniGQE6XAgfwlnXVBwrerrQo+ZWQeqiUwwMkuEbLeJFLhMCvYURpUMSC1oehm449ilx9X1F
G50TCFeOzfl8dqqCP6GzbPaIjiU19xX/azOR9V+tpUOzEL+wmXnZt3/nHPQ5xvD2OJH67km6SuPW
oPzev/D8V+x4+bHthfSjR9Y7DvQFjfBVwHXigBdtZcU2/wei8D/HYwIDAQABAoIBAGZ1kaEvnrqu
/uler7vgIn5m7lN5LKw4hJLAIW6tUT/fzvtcHK0SkbQCQXuriHmQ2MQyJX/0kn2NfjLV/ufGxbL1
mb5qwMGUnEpJaZD6QSSs3kICLwWUYUiGfc0uiSbmJoap/GTLU0W5Mfcv36PaBUNy5p53V6G7hXb2
bahyWyJNfjLe4M86yd2YK3V2CmK+X/BOsShnJ36+hjrXPPWmV3N9zEmCdJjA+K15DYmhm/tJWSD9
81oGk9TopEp7CkIfatEATyyZiVqoRq6k64iuM9JkA3OzdXzMQexXVJ1TLZVEH0E7bhlY9d8O1ozR
oQs/FiZNAx2iijCWyv0lpjE73+kCgYEA9mZtyhkHkFDpwrSM1APaL8oNAbbjwEy7Z5Mqfql+lIp1
YkriL0DbLXlvRAH+yHPRit2hHOjtUNZh4Axv+cpg09qbUI3+43eEy24B7G/Uh+GTfbjsXsOxQx/x
p9otyVwc7hsQ5TA5PZb+mvkJ5OBEKzet9XcKwONBYELGhnEPe7cCgYEA06Vgov6YHleHui9kHuws
ayav0elc5zkxjF9nfHFJRry21R1trw2Vdpn+9g481URrpzWVOEihvm+xTtmaZlSp//lkq75XDwnU
WA8gkn6O3QE3fq2yN98BURsAKdJfJ5RL1HvGQvTe10HLYYXpJnEkHv+Unl2ajLivWUt5pbBrKbUC
gYBjbO+OZk0sCcpZ29sbzjYjpIddErySIyRX5gV2uNQwAjLdp9PfN295yQ+BxMBXiIycWVQiw0bH
oMo7yykABY7Ozd5wQewBQ4AdSlWSX4nGDtsiFxWiI5sKuAAeOCbTosy1s8w8fxoJ5Tz1sdoxNeGs
Arq6Wv/G16zQuAE9zK9vvwKBgF+09VI/1wJBirsDGz9whVWfFPrTkJNvJZzYt69qezxlsjgFKshy
WBhd4xHZtmCqpBPlAymEjr/TOlbxyARmXMnIOWIAnNXMGB4KGSyl1mzSVAoQ+fqR+cJ3d0dyPl1j
jjb0Ed/NY8frlNDxAVHE8BSkdsx2f6ELEyBKJSRr9snRAoGAMrTwYneXzvTskF/S5Fyu0iOegLDa
NWUH38v/nDCgEpIXD5Hn3qAEcju1IjmbwlvtW+nY2jVhv7UGd8MjwUTNGItdb6nsYqM2asrnF3qS
VRkAKKKYeGjkpUfVTrW0YFjXkfcrR/V+QFL5OndHAKJXjW7a4ejJLncTzmZSpYzwApc=
-----END RSA PRIVATE KEY-----
```

Votre clé privée n'est pas stockée AWS et ne peut être récupérée ***que*** lorsqu'elle est créée. Vous ne pouvez pas la récupérer plus tard. Au lieu de cela, si vous perdez votre clé privée, vous devez créer une nouvelle paire de clés.

Si vous vous connectez à votre instance depuis un ordinateur Linux, nous vous recommandons d’utiliser la commande suivante pour définir les autorisations de votre fichier de clé privée afin d’être la seule personne autorisée à le lire.

```
$ chmod 400 MyKeyPair.pem
```

## Affichage de votre paire de clés
<a name="displaying-a-key-pair"></a>

Une « empreinte » est générée à partir de votre paire de clés et vous pouvez utiliser cette empreinte pour vérifier que la clé privée présente sur votre ordinateur local correspond à la clé publique stockée dans AWS. 

L'empreinte digitale est un SHA1 hachage extrait d'une copie codée DER de la clé privée. Cette valeur est capturée lors de la création de la paire de clés et est stockée AWS avec la clé publique. Vous pouvez consulter l'empreinte digitale dans la console Amazon EC2 ou en exécutant la AWS CLI commande. `[aws ec2 describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html)` 

L’exemple suivant affiche l’empreinte digitale pour `MyKeyPair`.

```
$ aws ec2 describe-key-pairs --key-name MyKeyPair
{
    "KeyPairs": [
        {
            "KeyName": "MyKeyPair",
            "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f"
        }
    ]
}
```

Pour plus d’informations sur les clés et les empreintes, consultez [Paires de clés Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Suppression de votre paire de clés
<a name="deleting-a-key-pair"></a>

Pour supprimer une paire de clés, exécutez la commande `[aws ec2 delete-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-key-pair.html)`, en remplaçant *`MyKeyPair`* par le nom de la paire à supprimer.

```
$ aws ec2 delete-key-pair --key-name MyKeyPair
```

## Références
<a name="cli-services-ec2-keypairs-references"></a>

**AWS CLI référence :**
+ `[aws ec2](https://docs.aws.amazon.com/cli/latest/reference/ec2/index.html)`
+ `[aws ec2 create-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-key-pair.html)`
+ `[aws ec2 delete-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-key-pair.html)`
+ `[aws ec2 describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html)`

**Autre référence :**
+ [Documentation Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ec2/)
+ Pour consulter le AWS SDK et les exemples de AWS CLI code et y contribuer, consultez le [référentiel d'exemples de AWS code](https://github.com/awsdocs/aws-doc-sdk-examples/) sur *GitHub*.

# Création, configuration et suppression de groupes de sécurité Amazon EC2 dans le AWS CLI
<a name="cli-services-ec2-sg"></a>

Vous pouvez créer un groupe de sécurité pour vos instances Amazon Elastic Compute Cloud (Amazon EC2) qui fonctionne essentiellement comme un pare-feu, avec des règles qui déterminent le trafic réseau pouvant entrer et sortir. 

Utilisez le AWS Command Line Interface (AWS CLI) pour créer un groupe de sécurité, ajouter des règles aux groupes de sécurité existants et supprimer des groupes de sécurité. 

**Note**  
Pour des exemples de commandes supplémentaires, consultez le [de référence](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**Topics**
+ [Conditions préalables](#cli-services-ec2-sg-prereqs)
+ [Création d’un groupe de sécurité](#creating-a-security-group)
+ [Ajout de règles à votre groupe de sécurité](#configuring-a-security-group)
+ [Suppression de votre groupe de sécurité](#deleting-a-security-group)
+ [Références](#cli-services-ec2-sg-references)

## Conditions préalables
<a name="cli-services-ec2-sg-prereqs"></a>

Pour exécuter les commandes `ec2`, vous devez respecter les conditions requises suivantes :
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Définissez vos autorisations IAM pour autoriser l’accès Amazon EC2. Pour plus d’informations sur les autorisations IAM pour Amazon EC2, consultez [Politiques IAM pour Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Création d’un groupe de sécurité
<a name="creating-a-security-group"></a>

Vous pouvez créer des groupes de sécurité associés à des clouds privés virtuels (VPCs).

L’exemple `[aws ec2 create-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html)` suivant montre comment créer un groupe de sécurité pour un VPC spécifié.

```
$ aws ec2 create-security-group --group-name my-sg --description "My security group" --vpc-id vpc-1a2b3c4d
{
    "GroupId": "sg-903004f8"
}
```

Pour afficher les informations initiales pour un groupe de sécurité, exécutez la commande `[aws ec2 describe-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-groups.html)`. Vous pouvez référencer un groupe de sécurité EC2-VPC uniquement par son `vpc-id` et non par son nom.

```
$ aws ec2 describe-security-groups --group-ids sg-903004f8
{
    "SecurityGroups": [
        {
            "IpPermissionsEgress": [
                {
                    "IpProtocol": "-1",
                    "IpRanges": [
                        {
                            "CidrIp": "0.0.0.0/0"
                        }
                    ],
                    "UserIdGroupPairs": []
                }
            ],
            "Description": "My security group"
            "IpPermissions": [],
            "GroupName": "my-sg",
            "VpcId": "vpc-1a2b3c4d",
            "OwnerId": "123456789012",
            "GroupId": "sg-903004f8"
        }
    ]
}
```

## Ajout de règles à votre groupe de sécurité
<a name="configuring-a-security-group"></a>

Lorsque vous exécutez une instance Amazon EC2, vous devez activer les règles dans le groupe de sécurité afin d’autoriser le trafic réseau entrant comme moyen de vous connecter à l’image. 

Par exemple, si vous lancez une instance Windows, vous ajoutez généralement une règle pour autoriser le trafic entrant sur le port TCP 3389 afin de prendre en charge le protocole RDP (Remote Desktop Protocol). Si vous lancez une instance Linux, vous ajoutez généralement une règle pour autoriser le trafic entrant sur le port TCP 22 afin de prendre en charge les connexions SSH. 

Utilisez la commande `[aws ec2 authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html)` pour ajouter une règle à votre groupe de sécurité. L’un des paramètres obligatoires de cette commande est l’adresse IP publique de votre ordinateur ou le réseau (sous la forme d’une plage d’adresses) auquel votre ordinateur est attaché, en notation [CIDR](https://wikipedia.org/wiki/Classless_Inter-Domain_Routing).

**Note**  
Nous fournissons le service suivant, [https://checkip.global.api.aws/](https://checkip.global.api.aws/), pour vous permettre de déterminer votre adresse IP publique. Pour trouver d’autres services qui peuvent vous aider à identifier votre adresse IP, recherchez « *quelle est mon adresse IP* » sur votre navigateur. Si votre connexion s’effectue via un FSI ou derrière un pare-feu à l’aide d’une adresse IP dynamique (via une passerelle NAT depuis un réseau privé), votre adresse peut changer périodiquement. Dans ce cas, vous devez trouver la plage d’adresses IP utilisées par les ordinateurs clients.

L’exemple suivant montre comment ajouter une règle pour RDP (port TCP 3389) à un groupe de sécurité EC2-VPC portant l’ID `sg-903004f8` à l’aide de votre adresse IP.

Pour commencer, trouvez votre adresse IP.

```
$ curl https://checkip.amazonaws.com
x.x.x.x
```

Vous pouvez ensuite ajouter l’adresse IP à votre groupe de sécurité en exécutant la commande `[aws ec2 authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html)`.

```
$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 3389 --cidr x.x.x.x/x
```

La commande suivante ajoute une autre règle pour activer SSH sur les instances dans le même groupe de sécurité.

```
$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 22 --cidr x.x.x.x/x
```

Pour afficher les changements dans le groupe de sécurité, exécutez la commande `[aws ec2 describe-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-groups.html)`.

```
$ aws ec2 describe-security-groups --group-ids sg-903004f8
{
    "SecurityGroups": [
        {
            "IpPermissionsEgress": [
                {
                    "IpProtocol": "-1",
                    "IpRanges": [
                        {
                            "CidrIp": "0.0.0.0/0"
                        }
                    ],
                    "UserIdGroupPairs": []
                }
            ],
            "Description": "My security group"
            "IpPermissions": [
                {
                    "ToPort": 22,
                    "IpProtocol": "tcp",
                    "IpRanges": [
                        {
                            "CidrIp": "x.x.x.x/x"
                        }
                    ]
                    "UserIdGroupPairs": [],
                    "FromPort": 22
                }
            ],
            "GroupName": "my-sg",
            "OwnerId": "123456789012",
            "GroupId": "sg-903004f8"
        }
    ]
}
```

## Suppression de votre groupe de sécurité
<a name="deleting-a-security-group"></a>

Pour supprimer un groupe de sécurité, exécutez la commande `[aws ec2 delete-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-security-group.html)`. 

**Note**  
Vous ne pouvez pas supprimer un groupe de sécurité s’il est actuellement attaché à un environnement.

L’exemple de commande suivant supprime un groupe de sécurité EC2-VPC.

```
$ aws ec2 delete-security-group --group-id sg-903004f8
```

## Références
<a name="cli-services-ec2-sg-references"></a>

**AWS CLI référence :**
+ `[aws ec2](https://docs.aws.amazon.com/cli/latest/reference/ec2/index.html)`
+ `[aws ec2 authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html)`
+ `[aws ec2 create-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html)`
+ `[aws ec2 delete-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-security-group.html)`
+ `[aws ec2 describe-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-groups.html)`

**Autre référence :**
+ [Documentation Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ec2/)
+ Pour consulter le AWS SDK et les exemples de AWS CLI code et y contribuer, consultez le [référentiel d'exemples de AWS code](https://github.com/awsdocs/aws-doc-sdk-examples/) sur *GitHub*.

# Lancement, mise en vente et suppression d'instances Amazon EC2 dans AWS CLI
<a name="cli-services-ec2-instances"></a>

Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour lancer, répertorier et supprimer des instances Amazon Elastic Compute Cloud (Amazon EC2). Si vous lancez une instance qui n'est pas incluse dans le niveau AWS gratuit, vous êtes facturé après le lancement de l'instance et vous êtes facturé pour la durée d'exécution de l'instance, même si elle reste inactive.

**Note**  
Pour des exemples de commandes supplémentaires, consultez le [de référence](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**Topics**
+ [Conditions préalables](#cli-services-ec2-instances-prereqs)
+ [Lancement de votre instance](#launching-instances)
+ [Ajout d’un périphérique de stockage en mode bloc à votre instance](#block-device-mapping)
+ [Ajout d’une balise à votre instance](#tagging-instances)
+ [Connexion à votre instance](#connecting-to-instances)
+ [Affichage de la liste de vos instances](#listing-instances)
+ [Suppression de votre instance](#terminating-instances)
+ [Références](#cli-services-ec2-instances-references)

## Conditions préalables
<a name="cli-services-ec2-instances-prereqs"></a>

Pour exécuter les commandes `ec2` de cette rubrique, vous devez respecter les conditions requises suivantes :
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Définissez vos autorisations IAM pour autoriser l’accès Amazon EC2. Pour plus d’informations sur les autorisations IAM pour Amazon EC2, consultez [Politiques IAM pour Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) dans le *Guide de l’utilisateur Amazon EC2*.
+ Créez une [paire de clés](cli-services-ec2-keypairs.md) et un [groupe de sécurité](cli-services-ec2-sg.md).
+ Sélectionnez une Amazon Machine Image (AMI) et notez son ID AMI. Pour plus d’informations, consultez [Recherche d’une AMI appropriée](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Lancement de votre instance
<a name="launching-instances"></a>

Pour lancer une instance Amazon EC2 à l’aide de l’AMI que vous avez sélectionnée, utilisez la commande `[aws ec2 run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)`. Vous pouvez lancer l’instance dans un cloud privé virtuel (VPC).

Au départ, votre instance apparait à l’état `pending`, mais passe à l’état `running` après quelques minutes.

L’exemple suivant montre comment lancer une instance `t2.micro` dans le sous-réseau spécifié d’un VPC. Remplacez les valeurs de paramètre *italicized* par vos propres valeurs.

```
$ aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f829e
{
    "OwnerId": "123456789012",
    "ReservationId": "r-5875ca20",
    "Groups": [
        {
            "GroupName": "my-sg",
            "GroupId": "sg-903004f8"
        }
    ],
    "Instances": [
        {
            "Monitoring": {
                "State": "disabled"
            },
            "PublicDnsName": null,
            "Platform": "windows",
            "State": {
                "Code": 0,
                "Name": "pending"
            },
            "EbsOptimized": false,
            "LaunchTime": "2013-07-19T02:42:39.000Z",
            "PrivateIpAddress": "10.0.1.114",
            "ProductCodes": [],
            "VpcId": "vpc-1a2b3c4d",
            "InstanceId": "i-5203422c",
            "ImageId": "ami-173d747e",
            "PrivateDnsName": "ip-10-0-1-114.ec2.internal",
            "KeyName": "MyKeyPair",
            "SecurityGroups": [
                {
                    "GroupName": "my-sg",
                    "GroupId": "sg-903004f8"
                }
            ],
            "ClientToken": null,
            "SubnetId": "subnet-6e7f829e",
            "InstanceType": "t2.micro",
            "NetworkInterfaces": [
                {
                    "Status": "in-use",
                    "SourceDestCheck": true,
                    "VpcId": "vpc-1a2b3c4d",
                    "Description": "Primary network interface",
                    "NetworkInterfaceId": "eni-a7edb1c9",
                    "PrivateIpAddresses": [
                        {
                            "PrivateDnsName": "ip-10-0-1-114.ec2.internal",
                            "Primary": true,
                            "PrivateIpAddress": "10.0.1.114"
                        }
                    ],
                    "PrivateDnsName": "ip-10-0-1-114.ec2.internal",
                    "Attachment": {
                        "Status": "attached",
                        "DeviceIndex": 0,
                        "DeleteOnTermination": true,
                        "AttachmentId": "eni-attach-52193138",
                        "AttachTime": "2013-07-19T02:42:39.000Z"
                    },
                    "Groups": [
                        {
                            "GroupName": "my-sg",
                            "GroupId": "sg-903004f8"
                        }
                    ],
                    "SubnetId": "subnet-6e7f829e",
                    "OwnerId": "123456789012",
                    "PrivateIpAddress": "10.0.1.114"
                }              
            ],
            "SourceDestCheck": true,
            "Placement": {
                "Tenancy": "default",
                "GroupName": null,
                "AvailabilityZone": "us-west-2b"
            },
            "Hypervisor": "xen",
            "BlockDeviceMappings": [
                {
                    "DeviceName": "/dev/sda1",
                    "Ebs": {
                        "Status": "attached",
                        "DeleteOnTermination": true,
                        "VolumeId": "vol-877166c8",
                        "AttachTime": "2013-07-19T02:42:39.000Z"
                    }
                }              
            ],
            "Architecture": "x86_64",
            "StateReason": {
                "Message": "pending",
                "Code": "pending"
            },
            "RootDeviceName": "/dev/sda1",
            "VirtualizationType": "hvm",
            "RootDeviceType": "ebs",
            "Tags": [
                {
                    "Value": "MyInstance",
                    "Key": "Name"
                }
            ],
            "AmiLaunchIndex": 0
        }
    ]
}
```

## Ajout d’un périphérique de stockage en mode bloc à votre instance
<a name="block-device-mapping"></a>

Un volume de périphérique racine est associé à chaque instance que vous lancez. Vous pouvez utiliser un mappage de périphérique de stockage en mode bloc pour spécifier des volumes Amazon Elastic Block Store (Amazon EBS) supplémentaires ou des volumes de stockage d’instances à attacher à une instance lorsqu’elle est lancée.

Pour ajouter un périphérique de stockage en mode bloc à votre instance, indiquez l’option `--block-device-mappings` lorsque vous utilisez `run-instances`.

Dans l’exemple suivant, le paramètre alloue un volume Amazon EBS standard de 20 Go, et le mappe à votre instance à l’aide de l’identifiant `/dev/sdf`.

```
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false}}]"
```

L’exemple suivant ajoute un volume Amazon EBS, mappé à `/dev/sdf`, sur la base d’un instantané existant. Un instantané représente une image qui est chargée sur le volume pour vous. Lorsque vous spécifiez un instantané, vous n’avez pas besoin de spécifier de volume ; il sera suffisamment grand pour contenir votre image. Cependant, si vous spécifiez une taille, elle doit être supérieure ou égale à la taille de l’instantané.

```
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"SnapshotId\":\"snap-a1b2c3d4\"}}]"
```

L’exemple suivant permet d’ajouter deux volumes à votre instance. Le nombre de volumes disponibles pour votre instance varie en fonction de son type d’instance.

```
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"VirtualName\":\"ephemeral0\"},{\"DeviceName\":\"/dev/sdg\",\"VirtualName\":\"ephemeral1\"}]"
```

L’exemple suivant crée le mappage (`/dev/sdj`), mais n’alloue pas de volume à l’instance.

```
--block-device-mappings "[{\"DeviceName\":\"/dev/sdj\",\"NoDevice\":\"\"}]"
```

Pour plus d’informations, consultez [Exemple de mappage de périphérique de stockage en mode bloc](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Ajout d’une balise à votre instance
<a name="tagging-instances"></a>

Une étiquette est une étiquette que vous attribuez à une AWS ressource. Elle vous permet d’ajouter des métadonnées à vos ressources que vous pouvez utiliser à des fins diverses. Pour plus d’informations, consultez [Balisage de vos ressources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) dans le Guide d’utilisateur *Amazon EC2*.

L’exemple suivant montre comment ajouter une balise avec le nom de clé « `Name` » et la valeur « `MyInstance` » pour l’instance spécifiée, en utilisant la commande `[aws ec2 create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html)`.

```
$ aws ec2 create-tags --resources i-5203422c --tags Key=Name,Value=MyInstance
```

## Connexion à votre instance
<a name="connecting-to-instances"></a>

Lorsque votre instance est en cours d’exécution, vous pouvez vous y connecter et l’utiliser comme vous le feriez depuis un ordinateur devant lequel vous êtes assis. Pour plus d’informations, consultez [Connexion à votre instance Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Affichage de la liste de vos instances
<a name="listing-instances"></a>

Vous pouvez utiliser le AWS CLI pour répertorier vos instances et consulter les informations les concernant. Vous pouvez afficher l’ensemble de vos instances, ou filtrer les résultats en fonction des instances qui vous intéressent.

Les exemples suivants montrent comment utiliser la commande `[aws ec2 describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html)`.

La commande suivante affiche la liste de toutes vos instances.

```
$ aws ec2 describe-instances
```

La commande suivante filtre la liste uniquement pour vos instances `t2.micro` et fournit uniquement en sortie les valeurs `InstanceId` pour chaque correspondance.

```
$ aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
[
    "i-05e998023d9c69f9a"
]
```

La commande suivante liste toutes vos instances ayant la balise `Name=MyInstance`.

```
$ aws ec2 describe-instances --filters "Name=tag:Name,Values=MyInstance"
```

La commande suivante répertorie les instances qui ont été lancées à l'aide de l'une des AMIs méthodes suivantes : `ami-x0123456``ami-y0123456`, et`ami-z0123456`.

```
$ aws ec2 describe-instances --filters "Name=image-id,Values=ami-x0123456,ami-y0123456,ami-z0123456"
```

## Suppression de votre instance
<a name="terminating-instances"></a>

Vous pouvez utiliser le AWS CLI pour mettre fin (supprimer) à une instance Amazon EC2 lorsque vous n'en avez plus besoin.

**Important**  
**La résiliation d’une instance est définitive et irréversible.**  
Une fois que vous avez résilié une instance, vous ne pouvez plus vous y connecter et elle ne peut pas être récupérée. Tous les volumes Amazon EBS attachés qui sont configurés pour être supprimés à la résiliation sont également supprimés de manière définitive et ne peuvent pas être récupérés. L’intégralité des données stockées sur les volumes de stockage d’instance est définitivement perdue. Pour plus d'informations, consultez [Comment fonctionne la résiliation d'une instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html).  
Avant de résilier à une instance, assurez-vous d’avoir sauvegardé toutes les données que vous devez conserver après la résiliation dans un stockage persistant.

Dès que l’état de l’instance passe à `shutting-down` ou `terminated`, l’instance ne vous est plus facturée. Si vous souhaitez vous reconnecter à une instance ultérieurement, utilisez [stop-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/stop-instances.html) au lieu de `terminate-instances`. Pour plus d’informations, consultez [Résilier une instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) dans le *Guide de l’utilisateur Amazon EC2*.

L'exemple suivant montre comment supprimer une instance à l'aide de la `[aws ec2 terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html)` commande.

```
$ aws ec2 terminate-instances --instance-ids i-5203422c
{
    "TerminatingInstances": [
        {
            "InstanceId": "i-5203422c",
            "CurrentState": {
                "Code": 32,
                "Name": "shutting-down"
            },
            "PreviousState": {
                "Code": 16,
                "Name": "running"
            }
        }
    ]
}
```

## Références
<a name="cli-services-ec2-instances-references"></a>

**AWS CLI référence :**
+ `[aws ec2](https://docs.aws.amazon.com/cli/latest/reference/ec2/index.html)`
+ `[aws ec2 create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html)`
+ `[aws ec2 describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html)`
+ `[aws ec2 run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)`
+ `[aws ec2 terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html)`

**Autre référence :**
+ [Documentation Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ec2/)
+ Pour consulter le AWS SDK et les exemples de AWS CLI code et y contribuer, consultez le [référentiel d'exemples de AWS code](https://github.com/awsdocs/aws-doc-sdk-examples/) sur *GitHub*.

# Modifiez le type d'instance Amazon EC2 à l'aide d'un script bash dans le AWS CLI
<a name="cli-services-ec2-instance-type-script"></a>

Cet exemple de script bash pour Amazon EC2 modifie le type d'instance d'une instance Amazon EC2 à l'aide du (). AWS Command Line Interface AWS CLI Il arrête l’instance si elle est en cours d’exécution, modifie le type d’instance, puis, sur demande, redémarre l’instance. Les scripts Shell sont des programmes conçus pour être exécutés dans une interface de ligne de commande.

**Note**  
Pour des exemples de commandes supplémentaires, consultez le [de référence](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**Topics**
+ [Avant de commencer](#cli-services-ec2-instance-type-script-prereqs)
+ [À propos de cet exemple](#cli-services-ec2-instance-type-script-about)
+ [Parameters](#cli-services-ec2-instance-type-script-params)
+ [Fichiers](#cli-services-ec2-instance-type-script-files.title)
+ [Références](#cli-services-ec2-instance-type-script-references)

## Avant de commencer
<a name="cli-services-ec2-instance-type-script-prereqs"></a>

Avant de pouvoir exécuter l’un des exemples ci-dessous, vous devez respecter les conditions requises suivantes.
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Le profil que vous utilisez doit disposer d'autorisations autorisant les AWS opérations effectuées dans les exemples.
+ Une instance Amazon EC2 en cours d’exécution dans le compte pour lequel vous disposez des autorisations d’arrêt et de modification. Si vous exécutez le script de test, il lance une instance pour vous, teste la modification du type, puis résilie l’instance.
+  AWS La meilleure pratique consiste à accorder à ce code le privilège minimal, ou uniquement les autorisations requises pour effectuer une tâche. Pour plus d’informations, consultez [Octroi du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) dans le *Guide de l’utilisateur AWS Identity and Access Management (IAM)*.
+ Ce code n'a pas été testé dans toutes les AWS régions. Certains AWS services ne sont disponibles que dans certaines régions. Pour plus d’informations, consultez [Points de terminaison et quotas de service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) dans le *Guide de référence générale AWS *. 
+ L'exécution de ce code peut entraîner des frais sur votre AWS compte. Il est de votre responsabilité de vous assurer que toutes les ressources créées par ce script sont supprimées lorsque vous en avez fini avec elles. 

## À propos de cet exemple
<a name="cli-services-ec2-instance-type-script-about"></a>

Cet exemple est écrit sous forme de fonction dans le fichier de script shell `change_ec2_instance_type.sh` que vous pouvez obtenir comme `source` à partir d’un autre script ou de la ligne de commande. Chaque fichier de script contient des commentaires décrivant chacune des fonctions. Une fois la fonction en mémoire, vous pouvez l’invoquer à partir de la ligne de commande. Par exemple, les commandes suivantes remplacent le type de l’instance spécifiée par `t2.nano` :

```
$ source ./change_ec2_instance_type.sh
$ ./change_ec2_instance_type -i *instance-id* -t new-type
```

Pour obtenir l'exemple complet et les fichiers de script téléchargeables, consultez [Modifier le type d'instance Amazon EC2](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/ec2/change-ec2-instance-type) dans le *référentiel d'exemples de AWS code* sur. *GitHub*

## Parameters
<a name="cli-services-ec2-instance-type-script-params"></a>

**-i** : *(chaîne)* spécifie l’ID d’instance à modifier.

**-t** : *(chaîne)* spécifie le type d’instance Amazon EC2 vers lequel basculer.

**-r** : *(commutateur)* par défaut, ce paramètre n’est pas défini. Si `-r` est défini, redémarre l’instance après le basculement de type.

**-f** : *(commutateur)* par défaut, le script invite l’utilisateur à confirmer l’arrêt de l’instance avant de procéder au basculement. Si `-f` est défini, la fonction n’invite pas l’utilisateur avant d’arrêter l’instance pour effectuer le basculement de type

**-v** : *(commutateur)* par défaut, le script fonctionne en mode silencieux et affiche le résultat uniquement en cas d’erreur. Si `-v` est défini, la fonction affiche l’état tout au long de son fonctionnement.

## Fichiers
<a name="cli-services-ec2-instance-type-script-files.title"></a>

**`change_ec2_instance_type.sh`**  
Le fichier de script principal contient la fonction `change_ec2_instance_type()` qui effectue les tâches suivantes :  
+ Vérifie que l’instance Amazon EC2 spécifiée existe.
+ À moins que `-f` ne soit sélectionné, avertit l’utilisateur avant d’arrêter l’instance.
+ Modifie le type d’instance
+ Si vous définissez `-r`, redémarre l’instance et confirme qu’elle est en cours d’exécution
Consultez le code correspondant `[change\$1ec2\$1instance\$1type.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/ec2/change-ec2-instance-type/change_ec2_instance_type.sh)` à *GitHub*.

**`test_change_ec2_instance_type.sh`**  
Le script `test_change_ec2_instance_type.sh` de fichier teste les différents chemins de code de la fonction `change_ec2_instance_type`. Si toutes les étapes du script de test fonctionnent correctement, le script de test supprime toutes les ressources qu’il a créées.  
Vous pouvez exécuter le script à l’aide des paramètres suivants :  
+ **-v** - *(switch)* Chaque test affiche un pass/failure état au fur et à mesure de son exécution. Par défaut, les tests s'exécutent silencieusement et la sortie inclut uniquement le pass/failure statut global final.
+ **-i** : *(commutateur)* le script s’arrête après chaque test pour vous permettre de parcourir les résultats intermédiaires de chaque étape. Vous permet d’examiner l’état actuel de l’instance à l’aide de la console Amazon EC2. Le script passe à l’étape suivante une fois que vous avez appuyé sur *ENTRÉE* à l’invite.
Consultez le code correspondant `[test\$1change\$1ec2\$1instance\$1type.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/ec2/change-ec2-instance-type/test_change_ec2_instance_type.sh)` à *GitHub*.

**`awsdocs_general.sh`**  
Le fichier de script `awsdocs_general.sh` contient les fonctions générales utilisées dans les exemples avancés de l’ AWS CLI.  
Consultez le code correspondant `[awsdocs\$1general.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/ec2/change-ec2-instance-type/awsdocs_general.sh)` à *GitHub*.

## Références
<a name="cli-services-ec2-instance-type-script-references"></a>

**AWS CLI référence :**
+ `[aws ec2](https://docs.aws.amazon.com/cli/v1/reference/ec2/index.html)`
+ `[aws ec2 describe-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/describe-instances.html)`
+ `[aws ec2 modify-instance-attribute](https://docs.aws.amazon.com/cli/v1/reference/ec2/modify-instance-attribute.html)`
+ `[aws ec2 start-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/start-instances.html)`
+ `[aws ec2 stop-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/stop-instances.html)`
+ `[aws ec2 wait instance-running](https://docs.aws.amazon.com/cli/v1/reference/ec2/wait/instance-running.html)`
+ `[aws ec2 wait instance-stopped](https://docs.aws.amazon.com/cli/v1/reference/ec2/wait/instance-stopped.html)`

**Autre référence :**
+ [Documentation Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ec2/)
+ Pour consulter le AWS SDK et les exemples de AWS CLI code et y contribuer, consultez le [référentiel d'exemples de AWS code](https://github.com/awsdocs/aws-doc-sdk-examples/) sur *GitHub*.

# Utilisation d'Amazon Glacier dans AWS CLI
<a name="cli-services-glacier"></a>


| Présentation d'Amazon Glacier | 
| --- | 
|    | 

Cette rubrique présente des exemples de AWS CLI commandes qui exécutent des tâches courantes pour Amazon Glacier. Les exemples montrent comment utiliser le AWS CLI pour charger un fichier volumineux sur Amazon Glacier en le divisant en plusieurs parties et en les chargeant depuis la ligne de commande.

Vous pouvez accéder aux fonctionnalités d'Amazon Glacier à l'aide du AWS Command Line Interface (AWS CLI). Pour répertorier les AWS CLI commandes pour Amazon Glacier, utilisez la commande suivante.

```
aws glacier help
```

**Note**  
Pour d’autres exemples de commandes, consultez `[aws glacier](https://docs.aws.amazon.com/cli/latest/reference/glacier/index.html)` dans la *Référence des commandes de l’AWS CLI *.

**Topics**
+ [Conditions préalables](#cli-services-glacier-prereqs)
+ [Création d'un coffre-fort Amazon Glacier](#cli-services-glacier-vault)
+ [Préparation d’un fichier pour le chargement](#cli-services-glacier-prep)
+ [Lancement d’un chargement partitionné et chargement des fichiers](#cli-services-glacier-initiate)
+ [Fin du chargement](#cli-services-glacier-complete)
+ [Ressources](#cli-services-glacier-resources)

## Conditions préalables
<a name="cli-services-glacier-prereqs"></a>

Pour exécuter les commandes `glacier`, vous devez respecter les conditions requises suivantes :
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Ce tutoriel utilise plusieurs outils de ligne de commande qui sont généralement préinstallés sur des systèmes d’exploitation de type Unix, y compris Linux et macOS. Les utilisateurs de Windows peuvent utiliser les mêmes outils en installant [Cygwin](https://www.cygwin.com/) et en exécutant les commandes à partir du terminal Cygwin. Les commandes et utilitaires natifs de Windows qui exécutent les mêmes fonctions sont signalés lorsqu’ils sont disponibles.

## Création d'un coffre-fort Amazon Glacier
<a name="cli-services-glacier-vault"></a>

Créez un coffre à l’aide de la commande `[create-vault](https://docs.aws.amazon.com/cli/latest/reference/glacier/create-vault.html)`.

```
$ aws glacier create-vault --account-id - --vault-name myvault
{
    "location": "/123456789012/vaults/myvault"
}
```

**Note**  
Toutes les commandes Amazon Glacier nécessitent un paramètre d'ID de compte. Utilisez le trait d’union (`--account-id -`) pour utiliser le compte actuel.

## Préparation d’un fichier pour le chargement
<a name="cli-services-glacier-prep"></a>

Créez un fichier pour le chargement test. Les commandes suivantes créent un fichier nommé *largefile* contenant exactement 3 MiB de données aléatoires.

**Linux ou macOS**

```
$ dd if=/dev/urandom of=largefile bs=3145728 count=1
1+0 records in
1+0 records out
3145728 bytes (3.1 MB) copied, 0.205813 s, 15.3 MB/s
```

`dd` est un utilitaire qui copie un nombre d’octets d’un fichier d’entrée vers un fichier de sortie. L’exemple précédent utilise le fichier de périphérique système `/dev/urandom` comme source de données aléatoires. `fsutil` exécute une fonction similaire sous Windows.

**Windows**

```
C:\> fsutil file createnew largefile 3145728
File C:\temp\largefile is created
```

Ensuite, fractionnez le fichier en fragments de 1 Mio (1 048 576 octets) à l’aide d’un utilitaire de fractionnement de fichier.

```
$ split -b 1048576 --verbose largefile chunk
creating file `chunkaa'
creating file `chunkab'
creating file `chunkac'
```

## Lancement d’un chargement partitionné et chargement des fichiers
<a name="cli-services-glacier-initiate"></a>

Créez un téléchargement partitionné dans Amazon Glacier à l'aide de la `[initiate-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/glacier/initiate-multipart-upload.html)` commande.

```
$ aws glacier initiate-multipart-upload --account-id - --archive-description "multipart upload test" --part-size 1048576 --vault-name myvault
{
    "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ",
    "location": "/123456789012/vaults/myvault/multipart-uploads/19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"
}
```

Amazon Glacier a besoin de la taille de chaque partie en octets (1 MiB dans cet exemple), du nom de votre coffre-fort et d'un ID de compte pour configurer le téléchargement partitionné. Le AWS CLI produit un identifiant de téléchargement lorsque l'opération est terminée. Enregistrez l’ID de chargement dans une variable shell en vue d’une utilisation ultérieure.

**Linux ou macOS**

```
$ UPLOADID="19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"
```

**Windows**

```
C:\> set UPLOADID="19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"
```

Utilisez ensuite la commande `[upload-multipart-part](https://docs.aws.amazon.com/cli/latest/reference/glacier/upload-multipart-part.html)` pour charger chacune des trois parties.

```
$ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkaa --range 'bytes 0-1048575/*' --account-id - --vault-name myvault
{
    "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553"
}
$ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkab --range 'bytes 1048576-2097151/*' --account-id - --vault-name myvault
{
    "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553"
}
$ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkac --range 'bytes 2097152-3145727/*' --account-id - --vault-name myvault
{
    "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553"
}
```

**Note**  
L’exemple précédent utilise le signe dollar (`$`) pour faire référence au contenu de la variable shell `UPLOADID` sur Linux. Dans l’invite de la ligne de commande Windows, utilisez un signe pourcentage (%) de chaque côté du nom de la variable (par exemple, `%UPLOADID%`).

Vous devez spécifier la plage d'octets de chaque pièce lorsque vous la chargez afin qu'Amazon Glacier puisse la réassembler dans le bon ordre. Chaque partie étant de 1 048 576 octets, la première occupe les octets 0 à 1 048 575, la deuxième les octets 1 048 576 à 2 097 151 et la troisième les octets 2 097 152 à 3 145 727.

## Fin du chargement
<a name="cli-services-glacier-complete"></a>

Amazon Glacier a besoin d'un hachage arborescent du fichier d'origine pour confirmer que toutes les pièces téléchargées sont AWS intactes. 

Pour calculer un hachage d’arborescence, vous devez fractionner le fichier en parties de 1 Mio et calculer un hachage SHA-256 binaire de chaque partie. Vous fractionnez ensuite la liste des hachages en paires, combinez les deux hachages binaires dans chaque paire et prenez les hachages des résultats. Répétez ce processus jusqu’à ce qu’il ne reste qu’un seul hachage. Si le nombre de hachages est impair à un niveau, vous devez le promouvoir au niveau suivant sans le modifier.

L’élément clé pour calculer un hachage d’arborescence correctement lors de l’utilisation des utilitaires de ligne de commande consiste à stocker chaque hachage au format binaire et à convertir en hexadécimal uniquement à la dernière étape. La combinaison ou le hachage de la version hexadécimale d’un hachage dans l’arborescence entraîne un résultat incorrect.

**Note**  
Les utilisateurs de Windows peuvent utiliser la commande `type` à la place de `cat`. OpenSSL est disponible pour Windows à l’adresse [OpenSSL.org](https://www.openssl.org/source/).

**Pour calculer un hachage d’arborescence**

1. Fractionnez le fichier d’origine en parties de 1 Mio, si ce n’est déjà fait.

   ```
   $ split --bytes=1048576 --verbose largefile chunk
   creating file `chunkaa'
   creating file `chunkab'
   creating file `chunkac'
   ```

1. Calculez et stockez le hachage SHA-256 binaire de chaque segment.

   ```
   $ openssl dgst -sha256 -binary chunkaa > hash1
   $ openssl dgst -sha256 -binary chunkab > hash2
   $ openssl dgst -sha256 -binary chunkac > hash3
   ```

1. Combinez les deux premiers hachages et prenez le hachage binaire du résultat.

   ```
   $ cat hash1 hash2 > hash12
   $ openssl dgst -sha256 -binary hash12 > hash12hash
   ```

1. Combinez le hachage parent des segments `aa` et `ab` au hachage de segment `ac` et hachez le résultat, cette fois en sortie hexadécimale. Stockez le résultat dans une variable shell.

   ```
   $ cat hash12hash hash3 > hash123
   $ openssl dgst -sha256 hash123
   SHA256(hash123)= 9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67
   $ TREEHASH=9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67
   ```

Enfin, terminez le chargement avec la commande `[complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/glacier/complete-multipart-upload.html)`. Cette commande prend la taille du fichier d’origine en octets, la valeur de hachage d’arborescence finale au format hexadécimal, ainsi que votre ID de compte et le nom de coffre.

```
$ aws glacier complete-multipart-upload --checksum $TREEHASH --archive-size 3145728 --upload-id $UPLOADID --account-id - --vault-name myvault
{
    "archiveId": "d3AbWhE0YE1m6f_fI1jPG82F8xzbMEEZmrAlLGAAONJAzo5QdP-N83MKqd96Unspoa5H5lItWX-sK8-QS0ZhwsyGiu9-R-kwWUyS1dSBlmgPPWkEbeFfqDSav053rU7FvVLHfRc6hg",
    "checksum": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67",
    "location": "/123456789012/vaults/myvault/archives/d3AbWhE0YE1m6f_fI1jPG82F8xzbMEEZmrAlLGAAONJAzo5QdP-N83MKqd96Unspoa5H5lItWX-sK8-QS0ZhwsyGiu9-R-kwWUyS1dSBlmgPPWkEbeFfqDSav053rU7FvVLHfRc6hg"
}
```

Vous pouvez également vérifier l’état du coffre avec la commande `[describe-vault](https://docs.aws.amazon.com/cli/latest/reference/glacier/describe-vault.html)`.

```
$ aws glacier describe-vault --account-id - --vault-name myvault
{
    "SizeInBytes": 3178496,
    "VaultARN": "arn:aws:glacier:us-west-2:123456789012:vaults/myvault",
    "LastInventoryDate": "2018-12-07T00:26:19.028Z",
    "NumberOfArchives": 1,
    "CreationDate": "2018-12-06T21:23:45.708Z",
    "VaultName": "myvault"
}
```

**Note**  
L’état du coffre est mis à jour une fois par jour. Pour plus d’informations, consultez [Utilisation des coffres](https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-vaults.html).

Il est maintenant possible de supprimer sans risque le bloc et les fichiers de hachage que vous avez créés.

```
$ rm chunk* hash*
```

Pour plus d'informations sur les téléchargements partitionnés, consultez les sections [Uploading de grandes archives par parties et [Computing Checksums](https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html) dans](https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html) le manuel *Amazon* Glacier Developer Guide. 

## Ressources
<a name="cli-services-glacier-resources"></a>

**AWS CLI référence :**
+ `[aws glacier](https://docs.aws.amazon.com/cli/latest/reference/glacier/index.html)`
+ `[aws glacier complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/glacier/complete-multipart-upload.html)`
+ `[aws glacier create-vault](https://docs.aws.amazon.com/cli/latest/reference/glacier/create-vault.html)`
+ `[aws glacier describe-vault](https://docs.aws.amazon.com/cli/latest/reference/glacier/describe-vault.html)`
+ `[aws glacier initiate-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/glacier/initiate-multipart-upload.html)`

**Référence du service :**
+ [Guide du développeur Amazon Glacier](https://docs.aws.amazon.com/amazonglacier/latest/dev/)
+ [Téléchargement d'archives volumineuses en plusieurs parties dans](https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html) le guide du *développeur Amazon Glacier*
+ [Calculer les checksums](https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html) dans le guide du *développeur Amazon Glacier*
+ [Utilisation des coffres-forts](https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-vaults.html) dans le manuel du *développeur Amazon Glacier*

# Utilisation d’IAM dans l’AWS CLI
<a name="cli-services-iam"></a>


| Présentation d’Gestion des identités et des accès AWS | 
| --- | 
|    | 

Vous pouvez accéder aux fonctionnalités d’Gestion des identités et des accès AWS (IAM) à l’aide de l’AWS Command Line Interface (AWS CLI). Pour afficher les commandes de l’AWS CLI pour IAM, utilisez la commande suivante.

```
aws iam help
```

Cette rubrique montre des exemples de commandes AWS CLI qui effectuent des tâches courantes pour IAM.

Avant d’exécuter des commandes, définissez vos informations d’identification par défaut. Pour plus d’informations, consultez [Configuration des paramètres de l’AWS CLI](cli-chap-configure.md).

Pour plus d’informations sur le service IAM, consultez le [Guide de l’utilisateur Gestion des identités et des accès AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html).

**Topics**
+ [Création d’utilisateurs et de groupes IAM](#cli-services-iam-new-user-group)
+ [Attachement d’une politique gérée par IAM à un utilisateur](#cli-services-iam-policy)
+ [Définition d’un mot de passe initial pour un utilisateur IAM](#cli-services-iam-set-pw)
+ [Création d’une clé d’accès pour un utilisateur IAM](#cli-services-iam-create-creds)

## Création d’utilisateurs et de groupes IAM
<a name="cli-services-iam-new-user-group"></a>

**Pour créer un groupe et lui ajouter un nouvel utilisateur**

1. Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/iam/create-group.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-group.html) pour créer le groupe.

   ```
   $ aws iam create-group --group-name MyIamGroup
   {
       "Group": {
           "GroupName": "MyIamGroup",
           "CreateDate": "2018-12-14T03:03:52.834Z",
           "GroupId": "AGPAJNUJ2W4IJVEXAMPLE",
           "Arn": "arn:aws:iam::123456789012:group/MyIamGroup",
           "Path": "/"
       }
   }
   ```

1. Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/iam/create-user.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-user.html) pour créer l’utilisateur.

   ```
   $ aws iam create-user --user-name MyUser
   {
       "User": {
           "UserName": "MyUser",
           "Path": "/",
           "CreateDate": "2018-12-14T03:13:02.581Z",
           "UserId": "AIDAJY2PE5XUZ4EXAMPLE",
           "Arn": "arn:aws:iam::123456789012:user/MyUser"
       }
   }
   ```

1. Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/iam/add-user-to-group.html](https://docs.aws.amazon.com/cli/latest/reference/iam/add-user-to-group.html) pour ajouter l’utilisateur au groupe.

   ```
   $ aws iam add-user-to-group --user-name MyUser --group-name MyIamGroup
   ```

1. Pour vérifier que le groupe `MyIamGroup` contient le code `MyUser`, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/iam/get-group.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group.html).

   ```
   $ aws iam get-group --group-name MyIamGroup
   {
       "Group": {
           "GroupName": "MyIamGroup",
           "CreateDate": "2018-12-14T03:03:52Z",
           "GroupId": "AGPAJNUJ2W4IJVEXAMPLE",
           "Arn": "arn:aws:iam::123456789012:group/MyIamGroup",
           "Path": "/"
       },
       "Users": [
           {
               "UserName": "MyUser",
               "Path": "/",
               "CreateDate": "2018-12-14T03:13:02Z",
               "UserId": "AIDAJY2PE5XUZ4EXAMPLE",
               "Arn": "arn:aws:iam::123456789012:user/MyUser"
           }
       ],
       "IsTruncated": "false"
   }
   ```

## Attachement d’une politique gérée par IAM à un utilisateur
<a name="cli-services-iam-policy"></a>

La politique dans cet exemple fournit à l’utilisateur un « accès utilisateur avancé ».

**Pour attacher une politique gérée par IAM à un utilisateur**

1. Déterminez l’ARN (Amazon Resource Name) de la politique à attacher. La commande suivante utilise `list-policies` pour trouver l’ARN de la politique portant le nom `PowerUserAccess`. Elle stocke ensuite cet ARN dans une variable d’environnement.

   ```
   $ export POLICYARN=$(aws iam list-policies --query 'Policies[?PolicyName==`PowerUserAccess`].{ARN:Arn}' --output text)       ~
   $ echo $POLICYARN
   arn:aws:iam::aws:policy/PowerUserAccess
   ```

1. Pour attacher la politique, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html), et référencez la variable d’environnement qui contient l’ARN de politique.

   ```
   $ aws iam attach-user-policy --user-name MyUser --policy-arn $POLICYARN
   ```

1. Vérifiez que la politique est bien attachée à l’utilisateur en exécutant la commande [https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-user-policies.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-user-policies.html).

   ```
   $ aws iam list-attached-user-policies --user-name MyUser
   {
       "AttachedPolicies": [
           {
               "PolicyName": "PowerUserAccess",
               "PolicyArn": "arn:aws:iam::aws:policy/PowerUserAccess"
           }
       ]
   }
   ```

Pour plus d’informations, consultez [Ressources de gestion des accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-additional-resources.html). Cette rubrique fournit des liens vers une présentation des autorisations et des politiques, ainsi que des liens vers des exemples de politiques pour l’accès à Amazon S3, Amazon EC2 et à d’autres services.

## Définition d’un mot de passe initial pour un utilisateur IAM
<a name="cli-services-iam-set-pw"></a>

La commande suivante utilise `[create-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/create-login-profile.html)` pour définir un mot de passe initial pour l’utilisateur spécifié. Lorsque l’utilisateur se connecte pour la première fois, il doit modifier le mot de passe afin que seul lui le connaisse.

```
$ aws iam create-login-profile --user-name MyUser --password My!User1Login8P@ssword --password-reset-required
{
    "LoginProfile": {
        "UserName": "MyUser",
        "CreateDate": "2018-12-14T17:27:18Z",
        "PasswordResetRequired": true
    }
}
```

Vous pouvez utiliser la commande `update-login-profile` pour *modifier* le mot de passe d’un utilisateur.

```
$ aws iam update-login-profile --user-name MyUser --password My!User1ADifferentP@ssword
```

## Création d’une clé d’accès pour un utilisateur IAM
<a name="cli-services-iam-create-creds"></a>

Vous pouvez utiliser la commande [https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html) pour créer une clé d’accès pour un utilisateur. Une clé d’accès est un ensemble d’informations d’identification de sécurité qui comprend un ID de clé d’accès et une clé secrète. 

Un utilisateur peut seulement créer deux clés d’accès à la fois. Si vous essayez de créer un troisième ensemble, la commande renvoie une erreur `LimitExceeded`.

```
$ aws iam create-access-key --user-name MyUser
{
    "AccessKey": {
        "UserName": "MyUser",
        "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "Status": "Active",
        "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
        "CreateDate": "2018-12-14T17:34:16Z"
    }
}
```

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html) pour supprimer une clé d’accès pour un utilisateur. Spécifiez la clé d’accès à supprimer à l’aide de l’ID de clé d’accès.

```
$ aws iam delete-access-key --user-name MyUser --access-key-id AKIAIOSFODNN7EXAMPLE
```

# Utilisation d’Amazon S3 dans l’AWS CLI
<a name="cli-services-s3"></a>


| Présentation d’Amazon Simple Storage Service (Amazon S3) | 
| --- | 
|    | 

Vous pouvez accéder aux fonctionnalités d’Amazon Simple Storage Service (Amazon S3) à l’aide de l’AWS Command Line Interface (AWS CLI). Amazon S3 est un service de stockage d’objets extrêmement évolutif et durable. Amazon S3 est conçu pour fournir une capacité de stockage pratiquement illimitée, ce qui en fait une solution idéale pour un large éventail de besoins de stockage et de gestion des données.

Amazon S3 vous permet de stocker et de récupérer n’importe quelle quantité de données, des petits fichiers aux grands jeux de données, sous forme d’objets. Chaque objet est stocké dans un conteneur appelé compartiment, accessible et géré via la AWS Management Console ou par programmation via les kits AWS SDK, les outils et l’AWS CLI.

En plus du stockage de base, Amazon S3 propose également une foule de fonctionnalités, notamment la gestion du cycle de vie, la gestion des versions, la capacité de mise à l’échelle et la sécurité. Ces fonctionnalités s’intègrent à d’autres Services AWS, ce qui vous permet de créer des solutions basées sur le cloud qui s’adaptent à vos besoins.

L’AWS CLI fournit deux niveaux de commandes pour accéder à S3 :
+ **s3** : commandes de niveau élevé créées spécifiquement pour l’AWS CLI qui simplifient l’exécution des tâches courantes, telles que la création, la manipulation, la suppression et la synchronisation d’objets et de compartiments.
+ **s3api** : expose un accès direct à toutes les opérations de l’API Amazon S3, ce qui vous permet d’effectuer des opérations avancées.

**Topics**
+ [À l'aide de commandes de haut niveau (s3) dans le AWS CLI](cli-services-s3-commands.md)
+ [À l'aide des commandes au niveau de l'API (s3api) dans le AWS CLI](cli-services-s3-apicommands.md)
+ [Exemple de script pour le cycle de vie du compartiment Amazon S3 dans AWS CLI](cli-services-s3-lifecycle-example.md)

# À l'aide de commandes de haut niveau (s3) dans le AWS CLI
<a name="cli-services-s3-commands"></a>

Cette rubrique décrit certaines des commandes que vous pouvez utiliser pour gérer les compartiments et les objets Amazon S3 à l’aide des commandes [https://docs.aws.amazon.com/cli/latest/reference/s3/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html) de l’ AWS CLI. Pour les commandes non abordées dans cette rubrique et pour des exemples de commandes supplémentaires, consultez les commandes [https://docs.aws.amazon.com/cli/latest/reference/s3/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html) dans la *Référence de l’AWS CLI *.

Les commandes de haut niveau `aws s3` simplifient la gestion des objets Amazon S3. Ces commandes vous permettent de gérer le contenu d’Amazon S3 en lui-même et avec les annuaires locaux.

**Topics**
+ [Conditions préalables](#using-s3-commands-prereqs)
+ [Avant de commencer](#using-s3-commands-before)
+ [Création d’un compartiment](#using-s3-commands-managing-buckets-creating)
+ [Affichage de la liste des compartiments et des objets](#using-s3-commands-listing-buckets)
+ [Suppression de compartiments](#using-s3-commands-delete-buckets)
+ [Suppression d’objets](#using-s3-commands-delete-objects)
+ [Déplacement d’objets](#using-s3-commands-managing-objects-move)
+ [Copie d’objets](#using-s3-commands-managing-objects-copy)
+ [Synchronisation d’objets](#using-s3-commands-managing-objects-sync)
+ [Options fréquemment utilisées pour les commandes s3](#using-s3-commands-managing-objects-param)
+ [Ressources](#using-s3-commands-managing-buckets-references)

## Conditions préalables
<a name="using-s3-commands-prereqs"></a>

Pour exécuter les commandes `s3`, vous devez respecter les conditions requises suivantes :
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Le profil que vous utilisez doit disposer d'autorisations autorisant les AWS opérations effectuées dans les exemples.
+ Maîtrisez les termes Amazon S3 suivants :
  + **Compartiment** : dossier Amazon S3 de haut niveau.
  + **Préfixe** : dossier Amazon S3 dans un compartiment.
  + **Objet** : tout élément hébergé dans un compartiment Amazon S3.

## Avant de commencer
<a name="using-s3-commands-before"></a>

Cette section décrit quelques points à prendre en compte avant d’utiliser des commandes `aws s3`.

### Chargement d’objets volumineux
<a name="using-s3-commands-before-large"></a>

Lorsque vous utilisez des commandes `aws s3` pour charger des objets volumineux dans un compartiment Amazon S3, AWS CLI effectue automatiquement un chargement partitionné. Vous ne pouvez pas reprendre un chargement qui échoue à l’aide de ces commandes `aws s3`. 

Si le téléchargement partitionné échoue en raison d'un délai imparti, ou si vous l'avez annulé manuellement AWS CLI, le téléchargement AWS CLI arrête le téléchargement et nettoie tous les fichiers créés. Ce processus peut prendre plusieurs minutes. 

Si le processus de chargement ou de nettoyage partitionné est annulé en raison d’une commande d’arrêt ou d’une défaillance du système, les fichiers créés restent dans le compartiment Amazon S3. [Pour nettoyer le téléchargement partitionné, utilisez la commande s3api . abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)

### Propriétés des fichiers et balises dans les copies partitionnées
<a name="using-s3-commands-before-tags"></a>

Lorsque vous utilisez la AWS CLI version 1 des commandes de l'`aws s3`espace de noms pour copier un fichier d'un emplacement de compartiment Amazon S3 vers un autre emplacement de compartiment Amazon S3, et que cette opération utilise une [copie en plusieurs parties](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CopyingObjctsMPUapi.html), aucune propriété de fichier de l'objet source n'est copiée vers l'objet de destination.

Par défaut, les commandes de AWS CLI version 2 de l'`s3`espace de noms qui effectuent des copies partitionnées transfèrent toutes les balises et l'ensemble de propriétés suivant de la copie source vers la copie de destination :`content-type`,`content-language`,`content-encoding`,`content-disposition`, `cache-control``expires`, et. `metadata`

Cela peut entraîner des appels d' AWS API supplémentaires vers le point de terminaison Amazon S3 qui n'auraient pas été effectués si vous aviez utilisé AWS CLI la version 1. Peuvent être inclus : `HeadObject`, `GetObjectTagging` et `PutObjectTagging`.

Si vous devez modifier ce comportement par défaut dans les commandes de la AWS CLI version 2, utilisez le `--copy-props` paramètre pour spécifier l'une des options suivantes :
+ **default** : la valeur par défaut. Spécifie que la copie inclut toutes les balises attachées à l’objet source et les propriétés englobées par le paramètre `--metadata-directive` utilisé pour les copies non partitionnées : `content-type`, `content-language`, `content-encoding`, `content-disposition`, `cache-control`, `expires` et `metadata`.
+ **metadata-directive** : spécifie que la copie inclut uniquement les propriétés englobées par le paramètre `--metadata-directive` utilisé pour les copies non partitionnées. Aucune balise n’est copiée.
+ **none** : spécifie que la copie n’inclut aucune des propriétés de l’objet source.

## Création d’un compartiment
<a name="using-s3-commands-managing-buckets-creating"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html) pour créer un compartiment. Les noms de compartiment doivent être ***globalement*** uniques (dans tout Amazon S3) et conformes à DNS. 

Les noms de compartiments peuvent contenir des lettres minuscules, des chiffres, des traits d’union et des points. Les noms de compartiment peuvent uniquement commencer et se terminer par une lettre ou un chiffre, et ils ne peuvent pas contenir de point à la suite d’un tiret ou d’un autre point. 

**Syntaxe**

```
$ aws s3 mb <target> [--options]
```

### Exemples s3 mb
<a name="using-s3-commands-managing-buckets-creating-examples"></a>

L’exemple suivant crée le compartiment `s3://amzn-s3-demo-bucket`.

```
$ aws s3 mb s3://amzn-s3-demo-bucket
```

## Affichage de la liste des compartiments et des objets
<a name="using-s3-commands-listing-buckets"></a>

Pour répertorier les compartiments, dossiers ou objets, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html). L’utilisation de la commande sans cible ni options permet de répertorier tous les compartiments. 

**Syntaxe**

```
$ aws s3 ls <target> [--options]
```

Pour voir quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultez [Options fréquemment utilisées pour les commandes s3](#using-s3-commands-managing-objects-param). Pour obtenir la liste complète des options disponibles, consultez [https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html) dans la *Référence des commandes de l’AWS CLI *.

### Exemples s3 ls
<a name="using-s3-commands-managing-objects-list-examples"></a>

L’exemple suivant répertorie tous les compartiments Amazon S3.

```
$ aws s3 ls
2018-12-11 17:08:50 amzn-s3-demo-bucket1
2018-12-14 14:55:44 amzn-s3-demo-bucket2
```

La commande suivante affiche la liste de tous les objets et préfixes d’un compartiment. Dans cet exemple de sortie, le préfixe `example/` possède un fichier nommé `MyFile1.txt`.

```
$ aws s3 ls s3://amzn-s3-demo-bucket
                           PRE example/
2018-12-04 19:05:48          3 MyFile1.txt
```

Vous pouvez filtrer la sortie sur un préfixe spécifique en l’incluant dans la commande. La commande suivante répertorie les objets dans *bucket-name/example/* (c'est-à-dire les objets *bucket-name* filtrés par le préfixe*example/*).

```
$ aws s3 ls s3://amzn-s3-demo-bucket/example/
2018-12-06 18:59:32          3 MyFile1.txt
```

Pour afficher uniquement les compartiments et les objets d’une région spécifique, utilisez les options `--region`.

```
$ aws s3 ls --region us-east-2
2018-12-06 18:59:32          3 MyFile1.txt
```

Si vous disposez d’une longue liste de compartiments et d’objets, vous pouvez paginer les résultats à l’aide des options `--max-items` ou `--page-size`. L’option `--max-items` limite le nombre total de compartiments et d’objets renvoyés lors d’un appel et l’option `--page-size` limite le nombre d’objets répertoriés sur une page.

```
$ aws s3 ls --max-items 100 --page-size 10
```

Pour plus d’informations sur la pagination, consultez [Utilisation du paramètre --page-size](cli-usage-pagination.md#cli-usage-pagination-pagesize) et [Utilisation du paramètre --max-items](cli-usage-pagination.md#cli-usage-pagination-maxitems).

## Suppression de compartiments
<a name="using-s3-commands-delete-buckets"></a>

Pour supprimer un compartiment, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/s3/rb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/rb.html). 

**Syntaxe**

```
$ aws s3 rb <target> [--options]
```

### Exemples s3 rb
<a name="using-s3-commands-removing-buckets-examples"></a>

L’exemple suivant supprime le compartiment `s3://amzn-s3-demo-bucket`.

```
$ aws s3 rb s3://amzn-s3-demo-bucket
```

Par défaut, le compartiment doit être vide pour que l’opération aboutisse. Pour supprimer un compartiment non vide, vous devez inclure l’option `--force`. Si vous utilisez un compartiment avec gestion des versions qui contient des objets précédemment supprimés, mais conservés, cette commande ne vous permet *pas* de supprimer le compartiment. Vous devez d’abord supprimer tout le contenu.

L’exemple suivant supprime tous les objets et préfixes du compartiment, puis supprime le compartiment lui-même.

```
$ aws s3 rb s3://amzn-s3-demo-bucket --force
```

## Suppression d’objets
<a name="using-s3-commands-delete-objects"></a>

Pour supprimer des objets dans un compartiment ou dans votre répertoire local, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html). 

**Syntaxe**

```
$ aws s3 rm  <target> [--options]
```

Pour voir quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultez [Options fréquemment utilisées pour les commandes s3](#using-s3-commands-managing-objects-param). Pour obtenir la liste complète des options, consultez [https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html) dans la *Référence des commandes de l’AWS CLI *.

### Exemples s3 rm
<a name="using-s3-commands-delete-objects-examples"></a>

L’exemple suivant supprime `filename.txt` de `s3://amzn-s3-demo-bucket/example`.

```
$ aws s3 rm s3://amzn-s3-demo-bucket/example/filename.txt
```

L’exemple suivant supprime tous les objets de `s3://amzn-s3-demo-bucket/example` à l’aide de l’option `--recursive`.

```
$ aws s3 rm s3://amzn-s3-demo-bucket/example --recursive
```

## Déplacement d’objets
<a name="using-s3-commands-managing-objects-move"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html) pour déplacer des objets depuis compartiment ou un répertoire local. La commande `s3 mv` copie l’objet ou le fichier source vers la destination spécifiée, puis supprime l’objet ou le fichier source.

**Syntaxe**

```
$ aws s3 mv <source> <target> [--options]
```

Pour voir quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultez [Options fréquemment utilisées pour les commandes s3](#using-s3-commands-managing-objects-param). Pour obtenir la liste complète des options disponibles, consultez [https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html) dans la *Référence des commandes de l’AWS CLI *.

**Avertissement**  
Si vous utilisez n'importe quel type de point d'accès ARNs ou d'alias de point d'accès dans votre source ou votre destination Amazon S3 URIs, vous devez faire très attention à ce que votre Amazon S3 source et destination se URIs résolvent en différents compartiments sous-jacents. Si les compartiments source et de destination sont identiques, le fichier ou l’objet source peut être déplacé sur lui-même, ce qui peut entraîner la suppression accidentelle de votre fichier ou objet source. Pour vérifier que les compartiments source et de destination ne sont pas identiques, utilisez le paramètre `--validate-same-s3-paths` ou définissez la variable d’environnement ``AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS`` sur `true`.

### Exemples s3 mv
<a name="using-s3-commands-managing-objects-move-examples"></a>

L’exemple suivant déplace tous les objets de `s3://amzn-s3-demo-bucket/example` vers `s3://amzn-s3-demo-bucket/`.

```
$ aws s3 mv s3://amzn-s3-demo-bucket/example s3://amzn-s3-demo-bucket/
```

L’exemple suivant déplace un fichier local de votre répertoire de travail actuel vers le compartiment Amazon S3 avec la commande `s3 mv`.

```
$ aws s3 mv filename.txt s3://amzn-s3-demo-bucket
```

L’exemple suivant déplace un fichier de votre compartiment Amazon S3 vers votre répertoire de travail actuel, où `./` spécifie votre répertoire de travail actuel.

```
$ aws s3 mv s3://amzn-s3-demo-bucket/filename.txt ./
```

## Copie d’objets
<a name="using-s3-commands-managing-objects-copy"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) pour copier des objets depuis un compartiment ou un répertoire local. 

**Syntaxe**

```
$ aws s3 cp <source> <target> [--options]
```

Vous pouvez utiliser le paramètre dash pour la diffusion de fichiers vers une entrée standard (`stdin`) ou une sortie standard (`stdout`). 

**Avertissement**  
Si vous l'utilisez PowerShell, le shell peut modifier le codage d'un CRLF ou ajouter un CRLF à une entrée ou à une sortie redirigée, ou à une sortie redirigée.

La commande `s3 cp` utilise la syntaxe suivante pour charger un flux de fichiers de `stdin` vers un compartiment spécifié.

**Syntaxe**

```
$ aws s3 cp - <target> [--options]
```

La commande `s3 cp` utilise la syntaxe suivante pour télécharger un flux de fichiers Amazon S3 pour `stdout`.

**Syntaxe**

```
$ aws s3 cp <target> [--options] -
```

Pour voir quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultez [Options fréquemment utilisées pour les commandes s3](#using-s3-commands-managing-objects-param). Pour obtenir la liste complète des options disponibles, consultez [https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) dans la *Référence des commandes de l’AWS CLI *.

### Exemples pour l’`s3 cp`
<a name="using-s3-commands-managing-objects-copy-examples"></a>

L’exemple suivant copie tous les objets de `s3://amzn-s3-demo-bucket/example` vers `s3://amzn-s3-demo-bucket/`.

```
$ aws s3 cp s3://amzn-s3-demo-bucket/example s3://amzn-s3-demo-bucket/
```

L’exemple suivant copie un fichier local de votre répertoire de travail actuel dans le compartiment Amazon S3 avec la commande `s3 cp`.

```
$ aws s3 cp filename.txt s3://amzn-s3-demo-bucket
```

L’exemple suivant copie un fichier de votre compartiment Amazon S3 vers votre répertoire de travail actuel, où `./` spécifie votre répertoire de travail actuel.

```
$ aws s3 cp s3://amzn-s3-demo-bucket/filename.txt ./
```

L’exemple suivant utilise echo pour diffuser le texte « hello world » dans le fichier `s3://bucket-name/filename.txt`.

```
$ echo "hello world" | aws s3 cp - s3://amzn-s3-demo-bucket/filename.txt
```

L’exemple suivant diffuse le fichier `s3://amzn-s3-demo-bucket/filename.txt` dans `stdout` et en imprime le contenu dans la console.

```
$ aws s3 cp s3://amzn-s3-demo-bucket/filename.txt -
hello world
```

L’exemple suivant diffuse le contenu de `s3://bucket-name/pre` dans `stdout`, utilise la commande `bzip2` pour compresser les fichiers et charge le nouveau fichier compressé nommé `key.bz2` dans `s3://bucket-name`.

```
$ aws s3 cp s3://amzn-s3-demo-bucket/pre - | bzip2 --best | aws s3 cp - s3://amzn-s3-demo-bucket/key.bz2
```

## Synchronisation d’objets
<a name="using-s3-commands-managing-objects-sync"></a>

La commande [https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) synchronise les contenus d’un compartiment et d’un répertoire ou le contenu de deux compartiments. Normalement, `s3 sync` copie les fichiers ou objets manquants ou obsolètes entre la source et la cible. Cependant, vous pouvez également indiquer l’option `--delete` pour supprimer de la cible les fichiers ou les objets qui ne sont pas présents dans la source. 

**Syntaxe**

```
$ aws s3 sync <source> <target> [--options]
```

Pour voir quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultez [Options fréquemment utilisées pour les commandes s3](#using-s3-commands-managing-objects-param). Pour obtenir la liste complète des options, consultez [https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) dans la *Référence des commandes de l’AWS CLI *.

### Exemples s3 sync
<a name="using-s3-commands-managing-objects-sync-examples"></a>

L’exemple suivant synchronise le contenu d’un préfixe Amazon S3 nommé *path* dans le compartiment nommé *amzn-s3-demo-bucket* avec le répertoire de travail actuel. 

`s3 sync` met à jour tous les fichiers dont la taille ou l’heure de modification sont différentes de celles des fichiers portant le même nom dans la destination. La sortie affiche les opérations spécifiques effectuées lors de la synchronisation. Notez que l’opération synchronise de manière récursive le sous-répertoire `MySubdirectory` et son contenu avec `s3://amzn-s3-demo-bucket/path/MySubdirectory`.

```
$ aws s3 sync . s3://amzn-s3-demo-bucket/path
upload: MySubdirectory\MyFile3.txt to s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt
upload: MyFile2.txt to s3://amzn-s3-demo-bucket/path/MyFile2.txt
upload: MyFile1.txt to s3://amzn-s3-demo-bucket/path/MyFile1.txt
```

L’exemple suivant, qui développe l’exemple précédent, montre comment utiliser l’option `--delete`.

```
// Delete local file
$ rm ./MyFile1.txt

// Attempt sync without --delete option - nothing happens
$ aws s3 sync . s3://amzn-s3-demo-bucket/path

// Sync with deletion - object is deleted from bucket
$ aws s3 sync . s3://amzn-s3-demo-bucket/path --delete
delete: s3://amzn-s3-demo-bucket/path/MyFile1.txt

// Delete object from bucket
$ aws s3 rm s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt
delete: s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt

// Sync with deletion - local file is deleted
$ aws s3 sync s3://amzn-s3-demo-bucket/path . --delete
delete: MySubdirectory\MyFile3.txt

// Sync with Infrequent Access storage class
$ aws s3 sync . s3://amzn-s3-demo-bucket/path --storage-class STANDARD_IA
```

Lorsque vous utilisez l’option `--delete`, les options `--exclude` et `--include` peuvent filtrer les fichiers ou les objets à supprimer au cours d’une opération `s3 sync`. Dans ce cas, la chaîne de paramètre doit spécifier les fichiers à exclure de ou à inclure dans la suppression dans le contexte du répertoire ou du compartiment cible. Vous en trouverez un exemple ci-dessous.

```
Assume local directory and s3://amzn-s3-demo-bucket/path currently in sync and each contains 3 files:
MyFile1.txt
MyFile2.rtf
MyFile88.txt
'''

// Sync with delete, excluding files that match a pattern. MyFile88.txt is deleted, while remote MyFile1.txt is not.
$ aws s3 sync . s3://amzn-s3-demo-bucket/path --delete --exclude "path/MyFile?.txt"
delete: s3://amzn-s3-demo-bucket/path/MyFile88.txt
'''

// Sync with delete, excluding MyFile2.rtf - local file is NOT deleted
$ aws s3 sync s3://amzn-s3-demo-bucket/path . --delete --exclude "./MyFile2.rtf"
download: s3://amzn-s3-demo-bucket/path/MyFile1.txt to MyFile1.txt
'''

// Sync with delete, local copy of MyFile2.rtf is deleted
$ aws s3 sync s3://amzn-s3-demo-bucket/path . --delete
delete: MyFile2.rtf
```

## Options fréquemment utilisées pour les commandes s3
<a name="using-s3-commands-managing-objects-param"></a>

Les options suivantes sont fréquemment utilisées pour les commandes décrites dans cette rubrique. Pour une liste complète des options que vous pouvez utiliser sur une commande, consultez la commande spécifique dans le [version 2 du guide de référence](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**acl**  
`s3 sync` et `s3 cp` peuvent utiliser l’option `--acl`. Cela vous permet de définir les autorisations d’accès pour les fichiers copiés sur Amazon S3. L’option `--acl` accepte les valeurs `private`, `public-read` et `public-read-write`. Pour plus d’informations, consultez [Liste ACL prête à l’emploi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) dans le *Guide de l’utilisateur Amazon S3*.  

```
$ aws s3 sync . s3://amzn-s3-demo-bucket/path --acl public-read
```

**exclude**  
Lorsque vous utilisez la commande `s3 cp`, `s3 mv`, `s3 sync` ou `s3 rm`, vous pouvez filtrer les résultats à l’aide de l’option `--exclude` ou `--include`. L’option `--exclude` définit des règles pour exclure uniquement les objets de la commande, et les options s’appliquent dans l’ordre spécifié. Voici un exemple :  

```
Local directory contains 3 files:
MyFile1.txt
MyFile2.rtf
MyFile88.txt

// Exclude all .txt files, resulting in only MyFile2.rtf being copied
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt"

// Exclude all .txt files but include all files with the "MyFile*.txt" format, resulting in, MyFile1.txt, MyFile2.rtf, MyFile88.txt being copied
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt" --include "MyFile*.txt"

// Exclude all .txt files, but include all files with the "MyFile*.txt" format, but exclude all files with the "MyFile?.txt" format resulting in, MyFile2.rtf and MyFile88.txt being copied
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude "MyFile?.txt"
```

**include**  
Lorsque vous utilisez la commande `s3 cp`, `s3 mv`, `s3 sync` ou `s3 rm`, vous pouvez filtrer les résultats à l’aide de l’option `--exclude` ou `--include`. L’option `--include` définit des règles pour inclure uniquement les objets spécifiés pour la commande, et les options s’appliquent dans l’ordre spécifié. Voici un exemple :  

```
Local directory contains 3 files:
MyFile1.txt
MyFile2.rtf
MyFile88.txt

// Include all .txt files, resulting in MyFile1.txt and MyFile88.txt being copied
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt"

// Include all .txt files but exclude all files with the "MyFile*.txt" format, resulting in no files being copied
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt" --exclude "MyFile*.txt"

// Include all .txt files, but exclude all files with the "MyFile*.txt" format, but include all files with the "MyFile?.txt" format resulting in MyFile1.txt being copied

$ aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt" --exclude "MyFile*.txt" --include "MyFile?.txt"
```

**grant**  
Les commandes `s3 cp`, `s3 mv` et `s3 sync` incluent une option `--grants` qui peut être utilisée pour accorder des autorisations sur l’objet aux utilisateurs ou aux groupes spécifiés. Définissez l’option `--grants` sur une liste d’autorisations à l’aide de la syntaxe suivante. Remplacez `Permission`, `Grantee_Type` et `Grantee_ID` par vos propres valeurs.  
**Syntaxe**  

```
--grants Permission=Grantee_Type=Grantee_ID
         [Permission=Grantee_Type=Grantee_ID ...]
```
Chaque valeur contient les éléments suivants :  
+ *Permission*— Spécifie les autorisations accordées. Cette option peut être définie sur `read`, `readacl`, `writeacl` ou `full`.
+ *Grantee\$1Type*— Spécifie comment identifier le bénéficiaire. Cette option peut être définie sur `uri`, `emailaddress` ou `id`.
+ *Grantee\$1ID*— Spécifie le bénéficiaire en fonction *Grantee\$1Type* de.
  + `uri` : URI du groupe. Pour plus d’informations, consultez [Qui est un bénéficiaire ?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ACLOverview.html#SpecifyingGrantee)
  + `emailaddress` : adresse e-mail du compte.
  + `id` : ID canonique du compte.
Pour plus d’informations sur le contrôle d’accès Amazon S3, consultez [Contrôle d’accès](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingAuthAccess.html).  
L’exemple suivant copie un objet dans un compartiment. Il accorde des autorisations `read` sur l’objet à tout le monde et des autorisations `full` (`read`, `readacl` et `writeacl`) au compte associé à `user@example.com`.   

```
$ aws s3 cp file.txt s3://amzn-s3-demo-bucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com
```
Vous pouvez également spécifier une classe de stockage autre que celle par défaut (`REDUCED_REDUNDANCY` ou `STANDARD_IA`) pour les objets que vous chargez dans Amazon S3. Pour ce faire, utilisez l’option `--storage-class`.  

```
$ aws s3 cp file.txt s3://amzn-s3-demo-bucket/ --storage-class REDUCED_REDUNDANCY
```

**aucune réécriture**  
Les `s3 sync` commandes `s3 cp``s3 mv`, et incluent une `--no-overwrite` option que vous pouvez utiliser pour empêcher le remplacement d'objets qui existent déjà sur la destination.  
L'exemple suivant copie un objet d'un bucket vers le répertoire local uniquement s'il n'existe pas déjà dans le répertoire local.  

```
$ aws s3 cp --no-overwrite s3://amzn-s3-demo-bucket/file.txt file.txt
```
L'exemple suivant copie de manière récursive des fichiers d'un répertoire local vers un bucket. Il ne copiera que les fichiers qui n'existent pas déjà dans le compartiment.  

```
$ aws s3 cp --recursive --no-overwrite /path/to/demo-files/ s3://amzn-s3-demo-bucket/demo-files/
```
L'exemple suivant déplace un objet d'un répertoire local vers un bucket uniquement s'il n'existe pas déjà dans l'emplacement de destination du bucket.  

```
$ aws s3 mv --no-overwrite file.txt s3://amzn-s3-demo-bucket/file.txt
```
L'exemple suivant synchronise les fichiers d'un répertoire local vers un bucket. Il synchronisera uniquement les fichiers qui n'existent pas déjà dans le compartiment de destination.  

```
$ aws s3 sync --no-overwrite /path/to/demo-files/ s3://amzn-s3-demo-bucket/demo-files/
```

**recursive**  
Lorsque vous utilisez cette option, la commande est exécutée sur tous les fichiers ou objets du répertoire ou du préfixe spécifié. L’exemple suivant supprime `s3://amzn-s3-demo-bucket/path` et l’ensemble de son contenu.  

```
$ aws s3 rm s3://amzn-s3-demo-bucket/path --recursive
```

## Ressources
<a name="using-s3-commands-managing-buckets-references"></a>

**AWS CLI référence :**
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/rb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/rb.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html)

**Référence du service :**
+ [Utilisation des compartiments Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingBucket.html) dans le *Guide de l’utilisateur Amazon S3*
+ [Utilisation des objets Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingObjects.html) dans le *Guide de l’utilisateur Amazon S3*
+ [Liste hiérarchique de clés grâce au préfixe et au délimiteur](https://docs.aws.amazon.com//AmazonS3/latest/userguide/ListingKeysHierarchy.html) dans le *Guide de l’utilisateur Amazon S3*
+ [Abandonnez les téléchargements partitionnés vers un compartiment S3 en utilisant le AWS SDK pour .NET (bas niveau)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/LLAbortMPUnet.html) *du guide de l'utilisateur Amazon S3*

# À l'aide des commandes au niveau de l'API (s3api) dans le AWS CLI
<a name="cli-services-s3-apicommands"></a>

Les commandes au niveau de l'API (contenues dans le jeu de `s3api` commandes) fournissent un accès direct à Amazon Simple Storage Service (Amazon S3) APIs et permettent certaines opérations qui ne sont pas exposées dans les commandes de haut niveau. `s3` Ces commandes sont l’équivalent des autres services AWS qui fournissent un accès de niveau API à la fonctionnalité des services. Pour plus d’informations sur les commandes `s3`, consultez [À l'aide de commandes de haut niveau (s3) dans le AWS CLI](cli-services-s3-commands.md)

Cette rubrique fournit des exemples qui montrent comment utiliser les commandes de niveau inférieur mappées à Amazon S3 APIs. En outre, vous trouverez des exemples pour chaque commande de l'API S3 dans la `s3api` section du [version 2 du guide de référence](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html).

**Topics**
+ [Conditions préalables](#cli-services-s3-apicommands-prereqs)
+ [Application d’une liste ACL personnalisée](#cli-services-s3-apicommands-acls)
+ [Configuration d’une politique de journalisation](#cli-services-s3-apicommands-logpol)
+ [Ressources](#cli-services-s3-apicommands-resources)

## Conditions préalables
<a name="cli-services-s3-apicommands-prereqs"></a>

Pour exécuter les commandes `s3api`, vous devez respecter les conditions requises suivantes :
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Le profil que vous utilisez doit disposer d'autorisations autorisant les AWS opérations effectuées dans les exemples.
+ Maîtrisez les termes Amazon S3 suivants :
  + **Compartiment** : dossier Amazon S3 de haut niveau.
  + **Préfixe** : dossier Amazon S3 dans un compartiment.
  + **Objet** : tout élément hébergé dans un compartiment Amazon S3.

## Application d’une liste ACL personnalisée
<a name="cli-services-s3-apicommands-acls"></a>

Avec les commandes de haut niveau, vous pouvez utiliser l'`--acl`option permettant d'appliquer des listes de contrôle d'accès prédéfinies (ACLs) aux objets Amazon S3. Mais vous ne pouvez pas utiliser cette commande pour définir l'ensemble du bucket ACLs. Toutefois, vous pouvez le faire à l’aide de la commande de niveau API ```[put-bucket-acl](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html)`. 

L'exemple suivant montre comment accorder le contrôle total à deux AWS utilisateurs (*user1@example.com* et *user2@example.com*) et l'autorisation de lecture à tout le monde. L’identifiant pour « tout le monde » provient d’un URI spécial que vous passez en tant que paramètre.

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

Pour plus de détails sur la façon de créer le ACLs, consultez [PUT Bucket acl](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html) dans le manuel *Amazon Simple Storage Service API Reference*. Les commandes ACL `s3api` de l’interface de ligne de commande, telles que `put-bucket-acl`, utilisent la même [notation d’argument raccourcie](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-shorthand.html).

## Configuration d’une politique de journalisation
<a name="cli-services-s3-apicommands-logpol"></a>

La commande d’API `put-bucket-logging` configure une politique de journalisation des compartiments. 

Dans l'exemple suivant, l' AWS utilisateur *user@example.com* a le contrôle total des fichiers journaux, et tous les utilisateurs ont un accès en lecture à ceux-ci. Notez que la commande `put-bucket-acl` est également requise pour accorder au système de diffusion des journaux d’Amazon S3 (spécifié par un URI) les autorisations nécessaires pour lire et écrire les journaux dans le compartiment.

```
$ aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --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 amzn-s3-demo-bucket --bucket-logging-status file://logging.json
```

Le fichier `logging.json` dans la commande précédente contient les éléments suivants.

```
{
  "LoggingEnabled": {
    "TargetBucket": "amzn-s3-demo-bucket",
    "TargetPrefix": "amzn-s3-demo-bucketLogs/",
    "TargetGrants": [
      {
        "Grantee": {
          "Type": "AmazonCustomerByEmail",
          "EmailAddress": "user@example.com"
        },
        "Permission": "FULL_CONTROL"
      },
      {
        "Grantee": {
          "Type": "Group",
          "URI": "http://acs.amazonaws.com/groups/global/AllUsers"
        },
        "Permission": "READ"
      }
    ]
  }
}
```

## Ressources
<a name="cli-services-s3-apicommands-resources"></a>

**AWS CLI référence :**
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-logging.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-logging.html)

**Référence du service :**
+ [Utilisation des compartiments Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingBucket.html) dans le *Guide de l’utilisateur Amazon S3*
+ [Utilisation des objets Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingObjects.html) dans le *Guide de l’utilisateur Amazon S3*
+ [Liste hiérarchique de clés grâce au préfixe et au délimiteur](https://docs.aws.amazon.com//AmazonS3/latest/userguide/ListingKeysHierarchy.html) dans le *Guide de l’utilisateur Amazon S3*
+ [Abandonnez les téléchargements partitionnés vers un compartiment S3 en utilisant le AWS SDK pour .NET (bas niveau)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/LLAbortMPUnet.html) *du guide de l'utilisateur Amazon S3*

# Exemple de script pour le cycle de vie du compartiment Amazon S3 dans AWS CLI
<a name="cli-services-s3-lifecycle-example"></a>

Cette rubrique utilise un exemple de script bash pour les opérations de cycle de vie des compartiments Amazon S3 à l’aide de l’ AWS Command Line Interface (AWS CLI). Cet exemple de script utilise l’ensemble de commandes [https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html). Les scripts Shell sont des programmes conçus pour être exécutés dans une interface de ligne de commande.

**Topics**
+ [Avant de commencer](#cli-services-s3-lifecycle-example-before)
+ [À propos de cet exemple](#cli-services-s3-lifecycle-example-about)
+ [Fichiers](#cli-services-s3-lifecycle-example-files)
+ [Références](#cli-services-s3-lifecycle-example-references)

## Avant de commencer
<a name="cli-services-s3-lifecycle-example-before"></a>

Avant de pouvoir exécuter l’un des exemples ci-dessous, vous devez respecter les conditions requises suivantes.
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Le profil que vous utilisez doit disposer d'autorisations autorisant les AWS opérations effectuées dans les exemples.
+  AWS La meilleure pratique consiste à accorder à ce code le privilège minimal, ou uniquement les autorisations requises pour effectuer une tâche. Pour plus d’informations, consultez [Octroi du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) dans le *Guide de l’utilisateur IAM*.
+ Ce code n'a pas été testé dans toutes les AWS régions. Certains AWS services ne sont disponibles que dans certaines régions. Pour plus d’informations, consultez [Points de terminaison et quotas de service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) dans le *Guide de référence générale AWS *. 
+ L'exécution de ce code peut entraîner des frais sur votre AWS compte. Il est de votre responsabilité de vous assurer que toutes les ressources créées par ce script sont supprimées lorsque vous en avez fini avec elles. 

Le service Amazon S3 utilise les termes suivants :
+ Compartiment : dossier Amazon S3 de haut niveau.
+ Préfixe : dossier Amazon S3 dans un compartiment.
+ Objet : tout élément hébergé dans un compartiment Amazon S3.

## À propos de cet exemple
<a name="cli-services-s3-lifecycle-example-about"></a>

Cet exemple montre comment interagir avec certaines des opérations de base d’Amazon S3 à l’aide d’un jeu de fonctions dans des fichiers de script shell. Les fonctions se trouvent dans le fichier de script shell nommé `bucket-operations.sh`. Vous pouvez appeler ces fonctions dans un autre fichier. Chaque fichier de script contient des commentaires décrivant chacune des fonctions.

Pour voir les résultats intermédiaires de chaque étape, exécutez le script avec un paramètre `-i`. Vous pouvez consulter l’état actuel du compartiment ou son contenu à l’aide de la console Amazon S3. Le script passe uniquement à l’étape suivante lorsque vous appuyez sur **ENTRÉE** à l’invite. 

Pour obtenir l'exemple complet et les fichiers de script téléchargeables, consultez [Amazon S3 Bucket Lifecycle Operations](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/s3/bucket-lifecycle-operations) dans le *référentiel d'exemples de AWS code* sur *GitHub*.

## Fichiers
<a name="cli-services-s3-lifecycle-example-files"></a>

L’exemple contient les fichiers suivants :

**bucket-operations.sh**  
Ce fichier de script principal peut être extrait d’un autre fichier. Il inclut des fonctions qui effectuent les tâches suivantes :  
+ Création d’un compartiment et vérification de son existence
+ Copie d’un fichier de l’ordinateur local vers un compartiment
+ Copie d’un fichier d’un emplacement de compartiment vers un autre
+ Affichage du contenu d’un compartiment
+ Suppression d’un fichier d’un compartiment
+ Suppression d’un compartiment
Consultez le code correspondant `[bucket-operations.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/s3/bucket-lifecycle-operations/bucket_operations.sh)` à *GitHub*.

**test-bucket-operations.sh**  
Le fichier de script de shell `test-bucket-operations.sh` montre comment appeler les fonctions en extrayant le fichier `bucket-operations.sh` et en appelant chacune des fonctions. Après avoir appelé des fonctions, le script de test supprime toutes les ressources qu’il a créées.   
Consultez le code correspondant `[test-bucket-operations.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/s3/bucket-lifecycle-operations/test_bucket_operations.sh)` à *GitHub*.

**awsdocs-general.sh**  
Le fichier de script `awsdocs-general.sh` contient les fonctions générales utilisées dans les exemples de code avancés de l’ AWS CLI.  
Consultez le code correspondant `[awsdocs-general.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/s3/bucket-lifecycle-operations/awsdocs_general.sh)` à *GitHub*.

## Références
<a name="cli-services-s3-lifecycle-example-references"></a>

**AWS CLI référence :**
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/create-bucket.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-bucket.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-bucket.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-bucket.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/head-bucket.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-bucket.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)

**Autre référence :**
+ [Utilisation des compartiments Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingBucket.html) dans le *Guide de l’utilisateur Amazon S3*
+ [Utilisation des objets Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingObjects.html) dans le *Guide de l’utilisateur Amazon S3*
+ Pour consulter le AWS SDK et les exemples de AWS CLI code et y contribuer, consultez le [référentiel d'exemples de AWS code](https://github.com/awsdocs/aws-doc-sdk-examples/) sur *GitHub*.

# Accès à Amazon SNS dans l’AWS CLI
<a name="cli-services-sns"></a>

Vous pouvez accéder aux fonctionnalités d’Amazon Simple Notiﬁcation Service (Amazon SNS) à l’aide de l’AWS Command Line Interface (AWS CLI). Pour afficher les commandes de l’AWS CLI pour Amazon SNS, utilisez la commande suivante.

```
aws sns help
```

Avant d’exécuter des commandes, définissez vos informations d’identification par défaut. Pour plus d’informations, consultez [Configuration des paramètres de l’AWS CLI](cli-chap-configure.md).

Cette rubrique montre des exemples de commandes AWS CLI qui effectuent des tâches courantes pour Amazon SNS.

**Topics**
+ [Création d’une rubrique](#cli-create-sns-topic)
+ [Abonnement à une rubrique](#cli-subscribe-sns-topic)
+ [Publication dans une rubrique](#cli-publish-sns-topic)
+ [Annulation de l’abonnement à une rubrique](#cli-unsubscribe-sns-topic)
+ [Suppression d’une rubrique](#cli-delete-sns-topic)

## Création d’une rubrique
<a name="cli-create-sns-topic"></a>

Pour créer une rubrique, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/sns/create-topic.html](https://docs.aws.amazon.com/cli/latest/reference/sns/create-topic.html) et spécifiez le nom que vous souhaitez attribuer à la rubrique.

```
$ aws sns create-topic --name my-topic
{
    "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic"
}
```

Notez la valeur `TopicArn` de la réponse, que vous utiliserez plus tard pour publier un message.

## Abonnement à une rubrique
<a name="cli-subscribe-sns-topic"></a>

Pour vous abonner à une rubrique, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/sns/subscribe.html](https://docs.aws.amazon.com/cli/latest/reference/sns/subscribe.html). 

L’exemple suivant spécifie le protocole `email` et une adresse e-mail pour `notification-endpoint`.

```
$ aws sns subscribe --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic --protocol email --notification-endpoint saanvi@example.com
{
    "SubscriptionArn": "pending confirmation"
}
```

AWS envoie immédiatement un e-mail de confirmation à l’adresse que vous avez spécifiée dans la commande `subscribe`. Le message électronique comporte le texte suivant.

```
You have chosen to subscribe to the topic:
arn:aws:sns:us-west-2:123456789012:my-topic
To confirm this subscription, click or visit the following link (If this was in error no action is necessary):
Confirm subscription
```

Une fois que le destinataire clique sur le lien **Confirmer l’abonnement**, le navigateur du destinataire affiche un message de notification avec des informations similaires à ce qui suit.

```
Subscription confirmed!

You have subscribed saanvi@example.com to the topic:my-topic.

Your subscription's id is:
arn:aws:sns:us-west-2:123456789012:my-topic:1328f057-de93-4c15-512e-8bb22EXAMPLE

If it was not your intention to subscribe, click here to unsubscribe.
```

## Publication dans une rubrique
<a name="cli-publish-sns-topic"></a>

Pour envoyer un message à tous les abonnés d’une rubrique, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/sns/publish.html](https://docs.aws.amazon.com/cli/latest/reference/sns/publish.html). 

L’exemple suivant envoie le message « Hello World\$1 » à tous les abonnés de la rubrique spécifiée.

```
$ aws sns publish --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic --message "Hello World!"
{
    "MessageId": "4e41661d-5eec-5ddf-8dab-2c867EXAMPLE"
}
```

Dans cet exemple, AWS envoie un message électronique avec le texte « Hello World \$1 » à `saanvi@example.com`.

## Annulation de l’abonnement à une rubrique
<a name="cli-unsubscribe-sns-topic"></a>

Pour vous désabonner d’une rubrique et arrêter de recevoir les messages qui y sont publiés, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/sns/unsubscribe.html](https://docs.aws.amazon.com/cli/latest/reference/sns/unsubscribe.html) et spécifiez l’ARN de la rubrique à laquelle vous voulez vous désabonner.

```
$ aws sns unsubscribe --subscription-arn arn:aws:sns:us-west-2:123456789012:my-topic:1328f057-de93-4c15-512e-8bb22EXAMPLE
```

Pour vérifier que vous êtes bien désabonnés, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/sns/list-subscriptions.html](https://docs.aws.amazon.com/cli/latest/reference/sns/list-subscriptions.html) pour confirmer que l’ARN n’apparaît plus dans la liste.

```
$ aws sns list-subscriptions
```

## Suppression d’une rubrique
<a name="cli-delete-sns-topic"></a>

Pour supprimer une rubrique, exécutez la commande [https://docs.aws.amazon.com/cli/latest/reference/sns/delete-topic.html](https://docs.aws.amazon.com/cli/latest/reference/sns/delete-topic.html).

```
$ aws sns delete-topic --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic
```

Pour vérifier qu’AWS a bien supprimé la rubrique, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/sns/list-topics.html](https://docs.aws.amazon.com/cli/latest/reference/sns/list-topics.html) pour confirmer que la rubrique n’apparaît plus dans la liste.

```
$ aws sns list-topics
```