Clase: Mongo::Auth::Aws::CredentialsRetriever Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/auth/aws/credentials_retriever.rb

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

Recupera credenciales de AWS de una variedad de fuentes.

Esta clase permite la recuperación de credenciales de AWS desde:

  • el usuario pasado (que recibe las credenciales pasadas al cliente a través de opciones de URI y opciones de Ruby)

  • Variables de entorno AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN (comúnmente utilizadas por los SDK de AWS y diversas herramientas, así como AWS Lambda)

  • Llamada a la API de AssumeRoleWithWebIdentity

  • Punto final de metadatos de EC2

  • Punto final de metadatos de ECS

Las fuentes mencionadas anteriormente se consultan en el orden especificado. Se utiliza la primera fuente que contenga cualquiera de los tres componentes de la credencial (ID de clave de acceso, clave de acceso secreta o token de sesión). Si se especifica alguno, los componentes de la credencial deben formar un conjunto válido; es decir, el ID de clave de acceso y la clave de acceso secreta siempre deben proporcionarse juntos, y si se proporciona un token de sesión, también deben proporcionarse el ID de clave y la clave secreta. Si una fuente proporciona credenciales parciales, la recuperación de credenciales falla con una excepción.

Desde:

  • 2.0.0

Colapso delresumen constante

METADATA_TIMEOUT =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Tiempo de espera para las operaciones de metadatos, en segundos.

La especificación de autenticación sugiere un tiempo de espera de 10 segundos, pero esto parece excesivamente largo dado que el endpoint es esencialmente local.

Desde:

  • 2.0.0

5

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del constructor

#initialize(usuario = nil, credentials_cache: CredentialsCache.instancia) ⇒ CredentialsRetriever

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve una nueva instancia de CredentialsRetriever.

Parámetros:

  • usuario (Auth::User | nil) (predeterminado: nulo)

    El objeto de usuario, si se proporcionó uno.

  • credentials_cache (Auth::Aws::CredentialsCache) (por defecto: CredentialsCache.instancia)

    El caché de credenciales.

Desde:

  • 2.0.0



61
62
63
64
# Archivo 'lib/mongo/auth/aws/credentials_retriever.rb', línea 61

def inicializar(usuario = nulo, credentials_cache: CredentialsCache.instancia)
  @user = usuario
  @credentials_cache = credentials_cache
end

Detalles de los atributos de instancia

#usuarioAuth:: Usuario | nil (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el objeto de usuario, si se proporcionó uno.

Devuelve:

  • (Auth::User | nil)

    El objeto de usuario, si se proporcionó uno.

Desde:

  • 2.0.0



67
68
69
# Archivo 'lib/mongo/auth/aws/credentials_retriever.rb', línea 67

def usuario
  @user
end

Detalles del método de instancia

#credenciales(timeout_holder = nulo) ⇒ Auth::Aws::Credentials

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Recupera un conjunto válido de credenciales, si es posible, o genera Auth::InvalidConfiguration.

Parámetros:

  • timeout_holder (CsotTimeoutHolder | nil) (predeterminado: nulo)

    CSOT timeout, si hay alguno.

Devuelve:

Aumenta:

  • Auth::InvalidConfiguration si una fuente contiene un conjunto inválido de credenciales.

  • Auth::Aws::CredentialsNotFound si no se pudieron recuperar las credenciales de ninguna fuente.

  • Error::TimeoutError si no se pueden recuperar las credenciales dentro del tiempo de espera definido en el contexto de la operación.

Desde:

  • 2.0.0



82
83
84
85
86
87
88
89
90
91
92
93
# Archivo 'lib/mongo/auth/aws/credentials_retriever.rb', línea 82

def cartas credenciales(timeout_holder = nulo)
  cartas credenciales = credenciales_del_usuario(usuario)
  return cartas credenciales a menos que cartas credenciales.nil?

  cartas credenciales = credentials_from_environment
  return cartas credenciales a menos que cartas credenciales.nil?

  cartas credenciales = @credentials_cache.obtener { obtener_credenciales_de_endpoints(timeout_holder) }
  return cartas credenciales a menos que cartas credenciales.nil?

  propagar Autenticación::AWS::CredentialsNotFound
end