

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.

# Commencer à utiliser le AWS SDK pour Ruby
<a name="getting-started"></a>

Découvrez comment installer, configurer et utiliser le SDK pour créer une application Ruby permettant d'accéder à une AWS ressource par programmation.

**Topics**
+ [Authentification avec AWS](credentials.md)
+ [Installation du kit SDK](setup-install.md)
+ [Création d'une application simple](hello.md)

# Authentification à AWS l'aide du AWS SDK for Ruby
<a name="credentials"></a>

Vous devez définir la manière dont votre code s'authentifie AWS lorsque vous développez avec Services AWS. Vous pouvez configurer l'accès programmatique aux AWS ressources de différentes manières en fonction de l'environnement et de l' AWS accès dont vous disposez. 

Pour choisir votre méthode d'authentification et la configurer pour le SDK, consultez la section [Authentification et accès](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) dans le *guide de référence des outils AWS SDKs et*. 

## Utilisation des informations d'identification de console
<a name="using-con-creds"></a>

Pour le développement local, nous recommandons aux nouveaux utilisateurs d'utiliser leurs identifiants de connexion existants à la console de AWS gestion pour accéder aux AWS services par programmation. Après l'authentification basée sur le navigateur, AWS génère des informations d'identification temporaires qui fonctionnent avec les outils de développement locaux tels que l'interface de ligne de AWS commande (AWS CLI) et le AWS SDK for Ruby.

Si vous choisissez cette méthode, suivez les instructions de [connexion pour le développement AWS local à l'aide des informations d'identification de la console à l'aide de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html).

Le AWS SDK pour Ruby n'a pas besoin de gemmes supplémentaires (`aws-sdk-signin`telles que) à ajouter à votre application pour utiliser la connexion avec les informations d'identification de console.

## Utilisation de l'authentification IAM Identity Center
<a name="using-iam-auth"></a>

Si vous choisissez cette méthode, suivez la procédure d'[authentification IAM Identity Center](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) dans le *guide de référence AWS SDKs and Tools*. Ensuite, votre environnement doit contenir les éléments suivants :
+ Le AWS CLI, que vous utilisez pour démarrer une session de portail d' AWS accès avant d'exécuter votre application.
+ [AWS`config`Fichier partagé doté](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) d'un `[default]` profil avec un ensemble de valeurs de configuration pouvant être référencées à partir du SDK. Pour connaître l'emplacement de ce fichier, reportez-vous à la section [Emplacement des fichiers partagés](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html) dans le *Guide de référence des outils AWS SDKs et*.
+  Le `config` fichier partagé définit le [https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html)paramètre. Cela définit la valeur par défaut Région AWS que le SDK utilise pour les AWS demandes. Cette région est utilisée pour les demandes de service du SDK qui ne sont pas spécifiées avec une région à utiliser. 
+  Le SDK utilise la [configuration du fournisseur de jetons SSO](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sso-credentials.html#feature-sso-credentials-profile) du profil pour obtenir des informations d'identification avant d'envoyer des demandes à. AWS La `sso_role_name` valeur, qui est un rôle IAM connecté à un ensemble d'autorisations IAM Identity Center, permet d'accéder à l'utilisateur Services AWS dans votre application.

  Le `config` fichier d'exemple suivant montre un profil par défaut configuré avec la configuration du fournisseur de jetons SSO. Le `sso_session` paramètre du profil fait référence à la [`sso-session`section](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#section-session) nommée. La `sso-session` section contient les paramètres permettant de lancer une session sur le portail AWS d'accès.

  ```
  [default]
  sso_session = my-sso
  sso_account_id = 111122223333
  sso_role_name = SampleRole
  region = us-east-1
  output = json
  
  [sso-session my-sso]
  sso_region = us-east-1
  sso_start_url = https://provided-domain.awsapps.com/start
  sso_registration_scopes = sso:account:access
  ```

Le AWS SDK pour Ruby n'a pas besoin de gemmes supplémentaires (`aws-sdk-sso`telles que `aws-sdk-ssooidc` et) à ajouter à votre application pour utiliser l'authentification IAM Identity Center.

### Démarrer une session sur le portail AWS d'accès
<a name="accessportal"></a>

Avant d'exécuter une application qui y accède Services AWS, vous avez besoin d'une session de portail d' AWS accès active pour que le SDK utilise l'authentification IAM Identity Center pour résoudre les informations d'identification. En fonction de la durée de session que vous avez configurée, votre accès finira par expirer et le SDK rencontrera une erreur d'authentification. Pour vous connecter au portail AWS d'accès, exécutez la commande suivante dans le AWS CLI.

```
aws sso login
```

Si vous avez suivi les instructions et que vous avez configuré un profil par défaut, il n'est pas nécessaire d'appeler la commande avec une `--profile` option. Si la configuration de votre fournisseur de jetons SSO utilise un profil nommé, la commande est `aws sso login --profile named-profile`.

Pour éventuellement vérifier si vous avez déjà une session active, exécutez la AWS CLI commande suivante.

```
aws sts get-caller-identity
```

Si votre session est active, la réponse à cette commande indique le compte IAM Identity Center et l'ensemble d'autorisations configurés dans le `config` fichier partagé.

**Note**  
Si vous disposez déjà d'une session active sur le portail AWS d'accès et que vous l'exécutez`aws sso login`, il ne vous sera pas demandé de fournir des informations d'identification.   
Le processus de connexion peut vous demander d'autoriser l' AWS CLI accès à vos données. Comme AWS CLI il repose sur le SDK pour Python, les messages d'autorisation peuvent contenir des variantes du `botocore` nom.

## Plus d'informations d'authentification
<a name="credother"></a>

Les utilisateurs humains, également connus sous le nom *identités humaines, * sont les personnes, les administrateurs, les développeurs, les opérateurs et les consommateurs de vos applications. Ils doivent disposer d'une identité pour accéder à vos AWS environnements et applications. Les utilisateurs humains membres de votre organisation, c'est-à-dire vous, le développeur, sont appelés *identités du personnel*. 

Utilisez des informations d'identification temporaires lors de l'accès AWS. Vous pouvez utiliser un fournisseur d'identité pour vos utilisateurs humains afin de fournir un accès fédéré aux AWS comptes en assumant des rôles fournissant des informations d'identification temporaires. Pour une gestion centralisée des accès, nous vous recommandons d'utiliser AWS IAM Identity Center (IAM Identity Center) pour gérer l'accès à vos comptes et les autorisations associées à ces comptes. Pour d'autres alternatives, consultez les rubriques suivantes :
+ Pour en savoir plus sur les bonnes pratiques, consultez [Bonnes pratiques de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l'utilisateur IAM*.
+ Pour créer des AWS informations d'identification à court terme, consultez la section [Informations d'identification de sécurité temporaires](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) dans le *guide de l'utilisateur IAM*.
+ Pour en savoir plus sur la chaîne de fournisseurs d'informations d'identification du AWS SDK for Ruby et sur la manière dont les différentes méthodes d'authentification sont essayées automatiquement par le SDK dans une séquence, consultez. [Chaîne de fournisseurs d'identifiants](credential-providers.md#credchain) 
+ Pour les paramètres de configuration des fournisseurs d'informations d'identification du AWS SDK, consultez la section [Fournisseurs d'informations d'identification standardisés](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html) dans le guide de référence *des outils AWS SDKs et*.

# Installation du AWS SDK pour Ruby
<a name="setup-install"></a>

Cette section inclut les prérequis et les instructions d'installation pour le AWS SDK for Ruby.

## Conditions préalables
<a name="aws-ruby-sdk-prerequisites"></a>

Avant d'utiliser le AWS SDK pour Ruby, vous devez vous authentifier auprès AWS de. Pour plus d'informations sur la configuration de l'authentification, consultez[Authentification à AWS l'aide du AWS SDK for Ruby](credentials.md).

## Installation du kit SDK
<a name="installing-the-sdk"></a>

Vous pouvez installer le AWS SDK pour Ruby comme vous le feriez pour n'importe quelle gemme Ruby. Les pierres précieuses sont disponibles sur [RubyGems](https://rubygems.org/gems/aws-sdk/). Le AWS SDK pour Ruby est conçu pour être modulaire et est séparé par Service AWS. L'installation de la `aws-sdk` gemme entière est volumineuse et peut prendre plus d'une heure. 

Nous vous recommandons d'installer uniquement les gemmes pour Services AWS votre usage personnel. Ils portent le même nom `aws-sdk-service_abbreviation` et la liste complète se trouve dans le tableau des [services pris en charge](https://github.com/aws/aws-sdk-ruby/#supported-services) du fichier README du AWS SDK for Ruby. Par exemple, la gemme permettant de s'interfacer avec le service Amazon S3 est directement disponible sur [https://rubygems.org/gems/aws-sdk-s3](https://rubygems.org/gems/aws-sdk-s3).

### Gestionnaire de versions Ruby
<a name="installing-rvm"></a>

Au lieu d'utiliser le système Ruby, nous vous recommandons d'utiliser un gestionnaire de version Ruby tel que le suivant : 
+ [RVM](http://rvm.io/)
+ [chruby](https://github.com/postmodern/chruby)
+ [rbenv](https://github.com/rbenv/rbenv)

Par exemple, si vous utilisez un système d'exploitation Amazon Linux 2, les commandes suivantes peuvent être utilisées pour mettre à jour RVM, répertorier les versions Ruby disponibles, puis choisir la version que vous souhaitez utiliser pour le développement avec le AWS SDK for Ruby. La version minimale requise de Ruby est 2.5.

```
$ rvm get head
$ rvm list known
$ rvm install ruby-3.1.3
$ rvm --default use 3.1.3
```

### Bundler
<a name="bundler"></a>

 Si vous utilisez [Bundler](http://bundler.io/), les commandes suivantes installent le AWS SDK for Ruby gem pour Amazon S3 :

1. Installez Bundler et créez : `Gemfile`

   ```
   $ gem install bundler
   $ bundle init
   ```

1. Ouvrez le fichier créé `Gemfile` et ajoutez une `gem` ligne pour chaque gemme de AWS service que votre code utilisera. Pour suivre l'exemple Amazon S3, ajoutez la ligne suivante au bas du fichier :

   ```
   gem "aws-sdk-s3"
   ```

1. Enregistrez le Gemfile.

1. Installez les dépendances spécifiées dans votre `Gemfile` :

   ```
   $ bundle install
   ```

# Création d'une application simple à l'aide du AWS SDK pour Ruby
<a name="hello"></a>

Dites bonjour à Amazon S3 à l'aide du AWS SDK pour Ruby. L'exemple suivant affiche la liste de vos compartiments Amazon S3.

## Écrire le code
<a name="aws-ruby-sdk-hello-world-code"></a>

Copiez et collez le code suivant dans un nouveau fichier source. Nommez le fichier `hello-s3.rb`.

```
require 'aws-sdk-s3'

# Wraps Amazon S3 resource actions.
class BucketListWrapper
  attr_reader :s3_resource

  # @param s3_resource [Aws::S3::Resource] An Amazon S3 resource.
  def initialize(s3_resource)
    @s3_resource = s3_resource
  end

  # Lists buckets for the current account.
  #
  # @param count [Integer] The maximum number of buckets to list.
  def list_buckets(count)
    puts 'Found these buckets:'
    @s3_resource.buckets.each do |bucket|
      puts "\t#{bucket.name}"
      count -= 1
      break if count.zero?
    end
    true
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't list buckets. Here's why: #{e.message}"
    false
  end
end

# Example usage:
def run_demo
  wrapper = BucketListWrapper.new(Aws::S3::Resource.new)
  wrapper.list_buckets(25)
end

run_demo if $PROGRAM_NAME == __FILE__
```

AWS Le SDK pour Ruby est conçu pour être modulaire et est séparé par Service AWS. Une fois la gemme installée, l'`require`instruction en haut de votre fichier source Ruby importe les classes et méthodes du AWS SDK pour le service Amazon S3. Pour obtenir la liste complète des joyaux de AWS service disponibles, consultez le tableau [des services pris en charge](https://github.com/aws/aws-sdk-ruby/#supported-services) du fichier README du AWS SDK for Ruby.

```
require 'aws-sdk-s3'
```

## Exécution du programme
<a name="aws-ruby-sdk-hello-world-running"></a>

Ouvrez une invite de commande pour exécuter votre programme Ruby. La syntaxe de commande typique pour exécuter un programme Ruby est la suivante : 

```
ruby [source filename] [arguments...]
```

Cet exemple de code n'utilise aucun argument. Pour exécuter ce code, entrez ce qui suit dans l'invite de commande : 

```
$ ruby hello-s3.rb
```

## Remarque pour les utilisateurs Windows
<a name="aws-ruby-sdk-quick-start-windows"></a>

Lorsque vous utilisez des certificats SSL sous Windows et que vous exécutez votre code Ruby, une erreur similaire à la suivante peut s'afficher.

```
C:\Ruby>ruby buckets.rb
C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:921:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Seahorse::Client::NetworkingError)
         from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:921:in `block in connect'

         from C:/Ruby200-x64/lib/ruby/2.0.0/timeout.rb:66:in `timeout'
         from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:921:in `connect'
         from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:862:in `do_start'
         from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:857:in `start'
...
```

Pour résoudre ce problème, ajoutez la ligne suivante à votre fichier source Ruby, quelque part avant votre premier AWS appel.

```
Aws.use_bundled_cert!
```

Si vous utilisez uniquement la `aws-sdk-s3` gemme dans votre programme Ruby et que vous souhaitez utiliser le certificat fourni, vous devez également ajouter la `aws-sdk-core` gemme.

## Étapes suivantes
<a name="aws-ruby-sdk-hello-world-next-steps"></a>

Pour tester de nombreuses autres opérations Amazon S3, consultez le [référentiel d'exemples de AWS code](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/ruby/example_code//s3) sur GitHub.