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à.
Interagisci con AWS i servizi
I dispositivi core Greengrass utilizzano certificati X.509 a cui connettersi AWS IoT Core utilizzando TLS protocolli di autenticazione reciproca. Questi certificati consentono ai dispositivi di interagire AWS IoT senza AWS credenziali, che in genere comprendono un ID di chiave di accesso e una chiave di accesso segreta. Altri AWS servizi richiedono AWS credenziali anziché certificati X.509 per chiamare API le operazioni sugli endpoint di servizio. AWS IoT Core dispone di un provider di credenziali che consente ai dispositivi di utilizzare il certificato X.509 per autenticare le richieste. AWS Il provider di AWS IoT credenziali autentica i dispositivi utilizzando un certificato X.509 e rilascia AWS credenziali sotto forma di token di sicurezza temporaneo con privilegi limitati. I dispositivi possono utilizzare questo token per firmare e autenticare qualsiasi richiesta. AWS Ciò elimina la necessità di memorizzare AWS le credenziali sui dispositivi core Greengrass. Per ulteriori informazioni, consulta Autorizzazione delle chiamate dirette ai AWS servizi nella Guida per gli AWS IoT Core sviluppatori.
Per recuperare le credenziali da AWS IoT Greengrass, i dispositivi principali utilizzano un alias di AWS IoT ruolo che punta a un ruolo. IAM Questo IAM ruolo è chiamato ruolo di scambio di token. L'alias del ruolo e il ruolo di scambio di token vengono creati quando si installa il software AWS IoT Greengrass Core. Per specificare l'alias di ruolo utilizzato da un dispositivo principale, configura il iotRoleAlias
parametro di. Nucleo Greengrass
Il fornitore di AWS IoT credenziali assume il ruolo di scambio di token per conto dell'utente per fornire AWS le credenziali ai dispositivi principali. Puoi associare IAM policy appropriate a questo ruolo per consentire ai dispositivi principali di accedere alle tue AWS risorse, ad esempio componenti, artefatti nei bucket S3. Per ulteriori informazioni su come configurare il ruolo di scambio di token, consulta. Autorizza i dispositivi principali a interagire con i servizi AWS
I dispositivi core Greengrass archiviano AWS le credenziali in memoria e le credenziali scadono dopo un'ora per impostazione predefinita. Se il software AWS IoT Greengrass Core si riavvia, deve recuperare nuovamente le credenziali. È possibile utilizzare l'UpdateRoleAliasoperazione per configurare la durata della validità delle credenziali.
AWS IoT Greengrass fornisce un componente pubblico, il componente del servizio di scambio di token, che è possibile definire come dipendenza nel componente personalizzato dall'interazione con AWS i servizi. Il servizio di scambio di token fornisce al componente una variabile di ambiente che definisce un server locale che fornisce AWS le credenziali. AWS_CONTAINER_CREDENTIALS_FULL_URI
URI Quando si crea un AWS SDK client, il client verifica la presenza di questa variabile di ambiente e si connette al server locale per recuperare AWS le credenziali e le utilizza per firmare le richieste. API In questo modo è possibile utilizzare AWS SDKs altri strumenti per richiamare AWS i servizi presenti nei componenti. Per ulteriori informazioni, consulta Servizio di scambio di token.
Importante
Il supporto per l'acquisizione di AWS credenziali in questo modo è stato aggiunto il 13 AWS SDKs luglio 2016. Il componente deve utilizzare una AWS SDK versione creata a partire da tale data. Per ulteriori informazioni, consulta Using a supported AWS SDK in Amazon Elastic Container Service Developer Guide.
Per acquisire AWS credenziali nel componente personalizzato, aws.greengrass.TokenExchangeService
definiscilo come dipendenza nella ricetta del componente. La seguente ricetta di esempio definisce un componente che installa boto3
Nota
Per eseguire questo componente di esempio, il dispositivo deve disporre dell'autorizzazione. s3:ListAllMyBuckets
Per ulteriori informazioni, consulta Autorizza i dispositivi principali a interagire con i servizi AWS.
Questo componente di esempio esegue il seguente script Python, list_s3_buckets.py
che elenca i bucket Amazon S3.
import boto3 import os try: print("Creating boto3 S3 client...") s3 = boto3.client('s3') print("Successfully created boto3 S3 client") except Exception as e: print("Failed to create boto3 s3 client. Error: " + str(e)) exit(1) try: print("Listing S3 buckets...") response = s3.list_buckets() for bucket in response['Buckets']: print(f'\t{bucket["Name"]}') print("Successfully listed S3 buckets") except Exception as e: print("Failed to list S3 buckets. Error: " + str(e)) exit(1)