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 proveedores de credenciales de C++
Todas las solicitudes AWS deben estar firmadas criptográficamente con las credenciales emitidas por AWS. En tiempo de ejecución, el SDK recupera los valores de configuración para las credenciales comprobando varias ubicaciones.
La autenticación con se AWS puede gestionar fuera de su 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.
La cadena de proveedores de credenciales
Si no especifica de manera explícita un proveedor de credenciales al crear un cliente, el SDK para C++ usa una cadena de proveedores de credenciales que comprueba una serie de lugares donde usted puede proporcionar credenciales. Cuando el SDK encuentra credenciales en una de esas ubicaciones, la búsqueda se detiene.
Orden de recuperación de credenciales
Todos SDKs tienen una serie de sitios (o fuentes) que consultan para obtener credenciales válidas y utilizarlas para realizar una solicitud a un Servicio de AWS. Una vez que se encuentran las credenciales válidas, se detiene la búsqueda. Esta búsqueda sistemática se denomina cadena de proveedores de credenciales.
Para cada paso de la cadena, hay diferentes maneras de establecer los valores. La configuración de los valores directamente en el código siempre tiene prioridad, seguida de la configuración como variables de entorno y, por último, en el AWS config archivo compartido. Para obtener más información, consulte Prioridad de los ajustes en la Guía de referencia de herramientas AWS SDKs y herramientas.
El SDK intenta cargar las credenciales del [default] perfil en los credentials archivos AWS config AND compartidos. Puede usar la variable de entorno AWS_PROFILE para elegir un perfil con nombre que desee que cargue el SDK en lugar de usar [default]. Los credentials archivos config y los comparten AWS SDKs las herramientas. La guía de referencia de AWS SDKs and Tools contiene información sobre los ajustes de configuración del SDK que utilizan todos AWS SDKs y los AWS CLI. Para obtener más información sobre cómo configurar el SDK a través del AWS config archivo compartido, consulte Archivos de credenciales y configuración compartidos. Para obtener más información sobre cómo configurar el SDK mediante la configuración de variables de entorno, consulte Compatibilidad con variables de entorno.
Para autenticarse AWS, el SDK para C++ comprueba los proveedores de credenciales en el siguiente orden.
-
AWS claves de acceso (credenciales temporales y de larga duración)
El SDK intenta cargar las credenciales desde las variables
AWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEYy deAWS_SESSION_TOKENentorno, o desde el AWScredentialsarchivo compartido.-
Para obtener instrucciones sobre la configuración de este proveedor, consulta las claves de AWS acceso en la Guía de referencia de herramientas AWS SDKs y herramientas.
-
Para obtener más información sobre las propiedades de configuración del SDK de este proveedor, consulte las claves de AWS acceso en la Guía de referencia de herramientas AWS SDKs y herramientas.
-
-
AWS STS identidad web
Al crear aplicaciones móviles o aplicaciones web basadas en clientes que requieren acceso a AWS, 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 orientación sobre la configuración de este proveedor, consulte Federate with web identity u OpenID Connect AWS SDKs 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.
-
-
Centro de identidades de IAM
Si utiliza el Centro de identidad de IAM para autenticarse, el SDK para C++ utiliza el token de inicio de sesión único que se configuró mediante la ejecución del comando CLI. AWS
aws sso loginEl SDK usa las credenciales temporales que IAM Identity Center ha intercambiado por un token válido. A continuación, el SDK utiliza las credenciales temporales cuando llama a los Servicios de AWS. Para obtener información detallada sobre este proceso, consulte Comprender la resolución de credenciales del SDK Servicios de AWS en la Guía de referencia de herramientas y herramientas.AWS SDKs-
Para obtener información sobre la configuración de este proveedor, consulte la autenticación del Centro de Identidad de IAM en la Guía de referencia de herramientas AWS SDKs y herramientas.
-
Para obtener más información sobre las propiedades de configuración del SDK de este proveedor, consulte el proveedor de credenciales del IAM Identity Center en la Guía de referencia de herramientas AWS SDKs y herramientas.
-
-
Inicie sesión en el solucionador de identidades de credenciales con Signin AWS
Si utiliza las credenciales de inicio de sesión y de consola de AWS para autenticarse, el SDK para C++ utiliza las credenciales de consola configuradas en ejecución
aws loginoaws login --profileen la CLI. El SDK usa estas credenciales cuando llama a AWS los servicios.-
Para obtener información detallada sobre este proceso, consulte Iniciar sesión para el desarrollo AWS local con las credenciales de la consola en la Guía de referencia de AWS SDKs and Tools.
-
-
Proveedor de procesos externo
Este proveedor se puede utilizar para proporcionar implementaciones personalizadas, como recuperar credenciales de un almacén de credenciales en las instalaciones o integrarlas con su proveedor de identificación en las instalaciones.
-
Para obtener información sobre una forma de configurar este proveedor, consulte IAM Roles Anywhere en la guía de referencia AWS SDKs y herramientas.
-
Para obtener más información sobre las propiedades de configuración del SDK de este proveedor, consulte Procesar el 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 for C++ (en el contenedor) utilice otros servicios de 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 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 su instancia. La aplicación SDK para C++ de la instancia intenta recuperar las credenciales que proporciona el rol en los metadatos de la instancia.
-
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.
-
La cadena de proveedores de credenciales se puede consultar AWSCredentialsProviderChain
Si ha seguido el enfoque recomendado para los nuevos usuarios para empezar, configure la autenticación con credenciales de inicio Autenticación AWS mediante AWS SDK para C++ de AWS sesión en el tema Primeros pasos. Otros métodos de autenticación son útiles en diferentes situaciones. Para evitar riesgos de seguridad, recomendamos utilizar siempre credenciales a corto plazo. Para conocer otros procedimientos de métodos de autenticación, consulte Autenticación y acceso en la Guía de referencia de herramientas AWS SDKs y herramientas.
Proveedor de credenciales explícito
En lugar de confiar en la cadena de proveedores de credenciales para detectar su método de autenticación, puede especificar un proveedor de credenciales específico para que lo utilice el SDK. Para ello, debe proporcionar las credenciales en el constructor del cliente de servicio.
El siguiente ejemplo crea un cliente de Amazon Simple Storage Service proporcionando directamente las credenciales de acceso temporal en lugar de utilizar la cadena.
SDKOptions options; Aws::InitAPI(options); { const auto cred_provider = Aws::MakeShared<Auth::SimpleAWSCredentialsProvider>("TestAllocationTag", "awsAccessKeyId", "awsSecretKey", "sessionToken"); S3Client client{cred_provider}; } Aws::ShutdownAPI(options);
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 Aws::Client::ClientConfiguration comparten una memoria caché.