Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso AWS del SDK para los proveedores de credenciales de Rust
Todas las solicitudes AWS deben estar firmadas criptográficamente con las credenciales emitidas porAWS. El SDK recupera en tiempo de ejecución los valores de configuración de las credenciales comprobando distintas ubicaciones.
Si la configuración recuperada incluye configuración de acceso de inicio de sesión único de AWS IAM Identity Center, el SDK trabaja con IAM Identity Center para recuperar las credenciales temporales que usa para realizar solicitudes a los Servicios de AWS.
Si la configuración recuperada incluye credenciales temporales, el SDK las usa para realizar Servicio de AWS llamadas. Las credenciales temporales están formadas por claves de acceso y un token de sesión.
La autenticación con se AWS puede gestionar fuera de tu base de código. El SDK puede detectar, utilizar y actualizar automáticamente muchos métodos de autenticación mediante la cadena de proveedores de credenciales.
Para ver las opciones guiadas para empezar a AWS autenticar tu proyecto, consulta Autenticación y acceso en la Guía de referencia de herramientas AWS SDKs y herramientas.
Cadena de proveedores de credenciales
Si no especifica de manera explícita un proveedor de credenciales al crear un cliente, el SDK para Ruby usa una cadena de proveedores de credenciales que comprueba una serie de lugares donde puede proporcionar credenciales. Cuando el SDK encuentra credenciales en una de esas ubicaciones, la búsqueda se detiene. Para obtener más información sobre la creación de clientes, consulte Configuración de clientes de servicio de AWS SDK para Rust en código.
El siguiente ejemplo no especifica un proveedor de credenciales en el código. El SDK usa la cadena de proveedores de credenciales para detectar la autenticación que se ha configurado en el entorno de alojamiento y usa esa autenticación para las llamadas a los Servicios de AWS.
let config = aws_config::defaults(BehaviorVersion::latest()).load().await; let s3 = aws_sdk_s3::Client::new(&config);
Orden de recuperación de credenciales
La cadena de proveedores de credenciales busca las credenciales mediante la siguiente secuencia predefinida:
-
Variables de entorno de clave de acceso
El SDK intenta cargar credenciales de las variables de entorno
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEYyAWS_SESSION_TOKEN. -
Los
credentialsarchivos AWSconfigy compartidosEl SDK intenta cargar las credenciales del
[default]perfil en loscredentialsarchivos AWSconfigand compartidos. Puede usar la variable de entornoAWS_PROFILEpara elegir un perfil con nombre que desee que cargue el SDK en lugar de usar[default]. Loscredentialsarchivosconfigy los comparten varias AWS SDKs herramientas. Para obtener más información sobre estos archivos, consulte loscredentialsarchivosconfigy compartidos en la Guía de referencia de herramientas AWS SDKs y herramientas. Para obtener más información sobre los proveedores estandarizados que puede especificar en un perfil, consulte los proveedores de credenciales estandarizados AWS SDKs y Herramientas. -
AWS STSidentidad web
Al crear aplicaciones móviles o aplicaciones web basadas en clientes que requieren acceso aAWS, AWS Security Token Service (AWS STS) devuelve un conjunto de credenciales de seguridad temporales para los usuarios federados que se autentican a través de un proveedor de identidad público (IdP).
-
Cuando lo especificas en un perfil, el SDK o la herramienta intentarán recuperar las credenciales temporales mediante el método de la API. AWS STS
AssumeRoleWithWebIdentityPara obtener más información sobre este método, consulta AssumeRoleWithWebIdentityla referencia de la AWS Security Token Service API. -
Para obtener instrucciones sobre la configuración de este proveedor, consulte Federate with web identity u OpenID Connect AWSSDKs en la Guía de referencia de and Tools.
-
Para obtener más información sobre las propiedades de configuración del SDK de este proveedor, consulte Asumir el rol de proveedor de credenciales en la Guía de referencia de herramientas AWS SDKs y herramientas.
-
-
Credenciales de contenedores de Amazon ECS y Amazon EKS
Sus tareas de Amazon Elastic Container Service y sus cuentas de servicio de Kubernetes pueden tener un rol de IAM asociado a ellas. Los contenedores que se ejecutan en la tarea o los contenedores del pod asumen los permisos concedidos en el rol de IAM. Este rol permite que su código de la aplicación de SDK para Rust (en el contenedor) utilice otros Servicios de AWS.
El SDK intenta recuperar las credenciales de las variables de entorno
AWS_CONTAINER_CREDENTIALS_RELATIVE_URIoAWS_CONTAINER_CREDENTIALS_FULL_URI, que Amazon ECS y Amazon EKS pueden configurar automáticamente.-
Para obtener más información sobre cómo configurar este rol para Amazon ECS, consulte Rol de IAM de tarea de Amazon ECS en la Guía para desarrolladores de Amazon Elastic Container Service.
-
Para obtener información sobre la configuración de Amazon EKS, consulte Configuración del agente de Pod Identity de Amazon EKS en la Guía del usuario de Amazon EKS.
-
Para obtener más información sobre las propiedades de configuración del SDK de este proveedor, consulte el tema del proveedor de credenciales de contenedor en la Guía de referencia de herramientas AWS SDKs y herramientas.
-
-
Servicio de metadatos de EC2 instancias de Amazon
Cree un rol de IAM y asócielo a la instancia. La aplicación SDK para Rust de la instancia intenta recuperar las credenciales que proporciona el rol a partir de los metadatos de la instancia.
-
El SDK de Rust solo es compatible IMDSv2.
-
Para obtener más información sobre la configuración de esta función y el uso de metadatos, consulta las funciones de IAM para Amazon EC2 y Work with instance metadata en la Guía del EC2 usuario de Amazon.
-
Para obtener más información sobre las propiedades de configuración del SDK de este proveedor, consulta la sección sobre el proveedor de credenciales del IMDS en la AWS SDKs Guía de referencia de herramientas.
-
-
Si las credenciales siguen sin resolverse en este momento, se produce un error en la operación panics.
Para obtener más información sobre los ajustes de configuración del proveedor de AWS credenciales, consulte los proveedores de credenciales estandarizados en la referencia sobre la configuración AWSSDKs y en la Guía de referencia de herramientas.
Proveedor de credenciales explícito
En lugar de confiar en la cadena de proveedores de credenciales para detectar el método de autenticación, puede especificar un proveedor de credenciales específico que debe utilizar el SDK. Al cargar la configuración general mediante aws_config::defaults, puede especificar un proveedor de credenciales personalizado, como se muestra a continuación:
let config = aws_config::defaults(BehaviorVersion::latest()) .credentials_provider(MyCredentialsProvider::new()) .load() .await;
Puede implementar su propio proveedor de credenciales implementando el indicador ProvideCredentials
Almacenamiento en caché de la identidad
El SDK almacenará en caché las credenciales y otros tipos de identidad, como los tokens de SSO. De forma predeterminada, el SDK usa una implementación de caché diferida que carga las credenciales cuando se solicitan por primera vez, las almacena en la memoria caché y, a continuación, intenta actualizarlas durante otra solicitud cuando están a punto de caducar. Los clientes creados a partir de la misma SdkConfig compartirán una IdentityCache