Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurare l' AWS SDK per Ruby
Scopri come configurare l' AWS SDK per Ruby. È necessario stabilire in che modo il codice si autentica AWS durante lo sviluppo con. Servizi AWSÈ inoltre necessario impostare Regione AWS quello che si desidera utilizzare.
L'SDK for Ruby include classi client che forniscono interfacce a. Servizi AWS Ogni classe client supporta una particolare classe Servizio AWS e segue la convenzione. Aws::
Ad esempio, <service identifier>
::ClientAws::S3::Client
fornisce un'interfaccia per il servizio Amazon Simple Storage Service e Aws::SQS::Client
fornisce un'interfaccia per il servizio Amazon Simple Queue Service.
Tutte le classi di client Servizi AWS sono thread-safe per tutti.
Quando si crea un'istanza di una classe client, AWS è necessario fornire le credenziali. Le credenziali possono essere fornite dal codice, dall'ambiente o dal file condiviso e dal AWS config
file condiviso. AWS credentials
Per l'ordine in cui l'SDK controlla i provider di autenticazione, consulta. Catena di fornitori di credenziali
config
Shared e credentials
i file possono essere utilizzati per le impostazioni di configurazione. Per tutte le impostazioni AWS SDK, consulta il riferimento alle impostazioni nella Guida di riferimento agli strumenti AWS SDKs e agli strumenti. È possibile utilizzare profili diversi per memorizzare configurazioni diverse. La variabile di AWS_PROFILE
ambiente può essere utilizzata per specificare il profilo caricato dall'SDK. Il profilo attivo può essere impostato anche utilizzando l'profile
opzione diAws.config
.
Precedenza delle impostazioni
Le impostazioni globali configurano funzionalità, fornitori di credenziali e altre funzionalità che sono supportate dalla maggior parte SDKs e hanno un ampio impatto su tutti. Servizi AWS Tutte AWS SDKs hanno una serie di luoghi (o fonti) che controllano per trovare un valore per le impostazioni globali. Non tutte le impostazioni sono disponibili in tutte le fonti. Di seguito è riportata la priorità di impostazione della ricerca:
-
Qualsiasi impostazione esplicita impostata nel codice o su un client di servizio stesso ha la precedenza su qualsiasi altra cosa.
-
Tutti i parametri passati direttamente a un costruttore del client hanno la massima priorità.
-
Aws.config
viene controllato per le impostazioni globali o specifiche del servizio.
-
-
La variabile di ambiente è selezionata.
-
Il AWS
credentials
file condiviso viene controllato. -
Il AWS
config
file condiviso viene controllato. -
Qualsiasi valore predefinito fornito dallo stesso codice sorgente AWS SDK for Ruby viene utilizzato per ultimo.
Aws.config
Per fornire una configurazione globale all'interno del codice per tutte le AWS classi, utilizzate Aws.config
aws-sdk-core
gem.
Aws.config
supporta due sintassi per usi diversi. Le impostazioni globali possono essere applicate a tutti Servizi AWS o a un servizio specifico. Per l'elenco completo delle impostazioni supportate, consulta l'Client
Options
AWS SDK per RubyAPI Reference.
Impostazioni globali tramite Aws.config
Per configurare impostazioni indipendenti dal servizioAws.config
, utilizzate la seguente sintassi:
Aws.config[:
<global setting name>
] =<value>
Queste impostazioni vengono unite a tutti i client di servizio creati.
Esempio di impostazione globale:
Aws.config[:
region
] ='us-west-2'
Se si tenta di utilizzare un nome di impostazione che non è supportato a livello globale, viene generato un errore quando si tenta di creare un'istanza di un tipo di servizio che non lo supporta. In tal caso, utilizza invece la sintassi specifica del servizio.
Impostazioni specifiche del servizio tramite Aws.config
Per configurare impostazioni specifiche del servizioAws.config
, utilizza la seguente sintassi:
Aws.config[:
<service identifier>
] = {<global setting name>
:<value>
}
Queste impostazioni vengono unite a tutti i client di servizio creati per quel tipo di servizio.
Esempio di impostazione che si applica solo ad Amazon S3:
Aws.config[:
s3
] = {force_path_style
:true
}
È possibile identificarli osservando il nome della gem AWS SDK for Ruby<service identifier>
aws-sdk-
Per esempio:
-
Infatti
aws-sdk-s3
, la stringa identificativa del servizio è "».s3
-
Infatti
aws-sdk-ecs
, la stringa dell'identificatore del servizio è "»ecs
.
Catena di fornitori di credenziali
Tutti SDKs hanno una serie di luoghi (o fonti) che controllano per ottenere credenziali valide da utilizzare per effettuare una richiesta a un. Servizio AWS Dopo aver trovato credenziali valide, la ricerca viene interrotta. Questa ricerca sistematica è chiamata catena di fornitori di credenziali predefinita.
Nota
Se hai seguito l'approccio consigliato per i nuovi utenti per iniziare, configurerai AWS IAM Identity Center l'autenticazione durante Autenticazione SDK con AWS l'argomento Guida introduttiva. Altri metodi di autenticazione sono utili per diverse situazioni. Per evitare rischi per la sicurezza, consigliamo di utilizzare sempre credenziali a breve termine. Per altre procedure relative ai metodi di autenticazione, consulta Autenticazione e accesso nella Guida di riferimento agli strumenti AWS SDKs e agli strumenti.
Per ogni fase della catena, esistono diversi modi per impostare i valori. L'impostazione dei valori direttamente nel codice ha sempre la precedenza, seguita dall'impostazione come variabili di ambiente e quindi nel AWS config
file condiviso.
La AWS SDKs and Tools Reference Guide contiene informazioni sulle impostazioni di configurazione SDK utilizzate da tutti AWS SDKs e da. AWS CLI Per ulteriori informazioni su come configurare l'SDK tramite il AWS config
file condiviso, consulta File di configurazione e credenziali condivisi. Per ulteriori informazioni su come configurare l'SDK tramite l'impostazione delle variabili di ambiente, consulta Supporto per le variabili di ambiente.
Con cui eseguire l'autenticazione AWS, l' AWS SDK for Ruby controlla i provider di credenziali nell'ordine elencato nella tabella seguente.
Fornitore di credenziali per precedenza | AWS SDKs e guida di riferimento agli strumenti | AWS SDK per Ruby Documentazione di riferimento API |
---|---|---|
AWS chiavi di accesso (credenziali temporanee e a lungo termine) | AWS chiavi di accesso | |
Token di identità Web da AWS Security Token Service (AWS STS) | Assumi il ruolo di fornitore di credenziali Utilizzando |
Aws::AssumeRoleWebIdentityCredentials
|
AWS IAM Identity Center. In questa guida, vediAutenticazione SDK con AWS. | Provider di credenziali IAM Identity Center | Aws::SSOCredentials |
Fornitore di entità affidabile (ad esempioAWS_ROLE_ARN ). In questa guida, vediCreazione di un token di accesso AWS STS. |
Assumi il ruolo di fornitore di credenziali Usando |
Aws::AssumeRoleCredentials |
Provider di credenziali di processo | Fornitore di credenziali di processo | Aws::ProcessCredentials |
Credenziali Amazon Elastic Container Service (Amazon ECS) | Fornitore di credenziali per container | Aws::ECSCredentials |
Credenziali del profilo di istanza Amazon Elastic Compute Cloud (Amazon EC2) (provider di credenziali IMDS) | Fornitore di credenziali IMDS | Aws::InstanceProfileCredentials |
Se la variabile di AWS_SDK_CONFIG_OPT_OUT
ambiente AWS SDK for Ruby è impostata, AWS config
il file condiviso, in ~/.aws/config
genere at, non verrà analizzato per le credenziali.
Creazione di un token di accesso AWS STS
Assumere un ruolo implica l'utilizzo di un set di credenziali di sicurezza temporanee che è possibile utilizzare per accedere a AWS risorse a cui normalmente non si ha accesso. Le credenziali temporanee sono costituite da un ID chiave di accesso, una chiave di accesso segreta e un token di sicurezza. È possibile utilizzare il Aws::AssumeRoleCredentials
metodo per creare un token di accesso AWS Security Token Service
(AWS STS).
L'esempio seguente utilizza un token di accesso per creare un oggetto client Amazon S3, dove si linked::account::arn
trova l'Amazon Resource Name (ARN) del ruolo da assumere ed session-name
è un identificatore per la sessione di ruolo assunta.
role_credentials = Aws::AssumeRoleCredentials.new(
client: Aws::STS::Client.new,
role_arn: "linked::account::arn
",
role_session_name: "session-name
"
)
s3 = Aws::S3::Client.new(credentials: role_credentials)
Per ulteriori informazioni sull'impostazione role_arn
orole_session_name
, o su come impostarli utilizzando invece il AWS config
file condiviso, consulta Assume role Credential Provider nella AWS SDKs and Tools Reference Guide.
Impostazione di una regione
È necessario impostare una regione quando si utilizza la maggior parte Servizi AWS. L' AWS SDK for Ruby cerca una regione nel seguente ordine:
Per ulteriori informazioni sull'region
impostazione, consulta la Guida Regione AWSdi riferimento agli strumenti AWS SDKs e agli strumenti. Il resto di questa sezione descrive come impostare una regione, a partire dall'approccio più comune.
Impostazione della regione utilizzando il config
file condiviso
Imposta la regione impostando la region
variabile nel AWS config
file condiviso. Per ulteriori informazioni sul config
file condiviso, consulta File di configurazione e credenziali condivisi nella AWS SDKs and Tools Reference Guide.
Esempio di impostazione di questo valore nel config
file:
[default] region = us-west-2
Il config
file condiviso non viene controllato se la variabile di ambiente AWS_SDK_CONFIG_OPT_OUT
è impostata.
Impostazione della regione utilizzando le variabili di ambiente
Imposta la regione impostando la variabile di AWS_REGION
ambiente.
Usa il export
comando per impostare questa variabile su sistemi basati su Unix, come Linux o macOS. L'esempio seguente imposta la regione su. us-west-2
export AWS_REGION=us-west-2
Per impostare questa variabile su Windows, utilizzate il set
comando. L'esempio seguente imposta la regione suus-west-2
.
set AWS_REGION=us-west-2
Impostazione della regione con Aws.config
Imposta la regione aggiungendo un region
valore all'Aws.config
hash. L'esempio seguente aggiorna l'Aws.config
hash per utilizzare la us-west-1
regione.
Aws.config.update({region: 'us-west-1'})
Tutti i client o le risorse che crei successivamente sono associati a questa regione.
Impostazione della regione in un oggetto client o risorsa
Imposta la regione quando crei un AWS client o una risorsa. L'esempio seguente crea un oggetto risorsa Amazon S3 nella us-west-1
regione. Scegli la regione corretta per le tue AWS risorse. Un oggetto client di servizio è immutabile, quindi è necessario creare un nuovo client per ogni servizio a cui si effettuano richieste e per effettuare richieste allo stesso servizio utilizzando una configurazione diversa.
s3 = Aws::S3::Resource.new(region: 'us-west-1')
Impostazione di un endpoint non standard
La regione viene utilizzata per costruire un endpoint SSL da utilizzare per le richieste. AWS Se devi utilizzare un endpoint non standard nella regione che hai selezionato, aggiungi una voce a. endpoint
Aws.config
In alternativa, imposta endpoint:
quando crei un client di servizio o un oggetto risorsa. L'esempio seguente crea un oggetto risorsa Amazon S3 nell'other_endpoint
endpoint.
s3 = Aws::S3::Resource.new(endpoint: other_endpoint)
Per utilizzare un endpoint di tua scelta per le richieste API e far sì che tale scelta persista, consulta l'opzione di configurazione degli endpoint specifici del servizio nella and Tools Reference Guide.AWS SDKs