Ingesta desde el Bucket S3

Descripción general

La ingestión de archivos desde un bucket S3 es una forma más de ingerir archivos desde diferentes fuentes (AWS S3).

Desde la perspectiva del procesamiento del contenido del archivo, esto será lo mismo que para la ingestión basada en archivos locales, pero la fuente del archivo es diferente.

Se admiten los siguientes tipos diferentes de archivos:XML, TXT, JSON.

Configuraciones de Credenciales del Cliente S3

Resumen de Credenciales

Al interactuar con AWS, se deben especificar las credenciales de seguridad de AWS para verificar la identidad y los permisos para acceder a los recursos solicitados. AWS utiliza estas credenciales de seguridad para autenticar y autorizar las solicitudes.

Por ejemplo, para descargar un archivo protegido de un bucket de Amazon Simple Storage Service (Amazon S3), las credenciales deben permitir ese acceso. Si las credenciales no autorizan la descarga, AWS deniega la solicitud.

Existen diferentes tipos de usuarios en AWS, y todos los usuarios de AWS tienen credenciales de seguridad. Estos usuarios incluyen al propietario de la cuenta (usuario raíz), usuarios en el Centro de Identidad de AWS IAM, usuarios federados y usuarios de IAM.

Los usuarios tienen credenciales de seguridad a largo plazo o temporales. Los usuarios raíz, los usuarios de IAM y las claves de acceso tienen credenciales de seguridad a largo plazo que no caducan. Para proteger las credenciales a largo plazo, deben implementarse procesos para gestionar las claves de acceso, cambiar contraseñas y habilitar MFA.

Las claves de acceso de AWS se proporcionan para realizar llamadas programáticas a AWS o para utilizar la Interfaz de Línea de Comandos de AWS o las Herramientas de AWS para PowerShell. Se recomienda utilizar claves de acceso a corto plazo cuando sea posible.

El cliente S3 admite tres modos de gestión de acceso:

1. Credenciales Estáticas

Cuando se crea una clave de acceso a largo plazo, se genera un ID de clave de acceso (por ejemplo, AKIAIOSFODNN7EXAMPLE) y una clave de acceso secreta (por ejemplo,wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY) se crean como un conjunto. La clave de acceso secreta está disponible para su descarga únicamente en el momento de la creación. Si la clave de acceso secreta no se descarga o se pierde, se debe crear una nueva.

Configuración:

# Explicit configuration (optional)
ipf.file-manager.s3.credentials-provider = static

# Required credentials
ipf.file-manager.s3.credentials.access-key-id = <your-access-key>
ipf.file-manager.s3.credentials.secret-access-key = <your-secret-key>

Características: * Utiliza credenciales de acceso a largo plazo. * Las credenciales se almacenan en la configuración. * Fácil de configurar pero menos seguro para entornos de producción. * Apropiado para el desarrollo y las pruebas

2. Autenticación de Token de Identidad Web STS

En muchos escenarios, no se necesitan claves de acceso a largo plazo que nunca expiren. En su lugar, se pueden crear roles de IAM y credenciales de seguridad temporales. Las credenciales de seguridad temporales incluyen un ID de clave de acceso y una clave de acceso secreta, así como un token de seguridad que indica cuándo expiran las credenciales. Después de la expiración, las credenciales ya no son válidas.

Configuración:

ipf.file-manager.s3.credentials-provider = sts-web-identity

Configuración: Para obtener orientación detallada sobre la configuración de la autenticación de token de identidad web de AWS STS, consulte la documentación oficial de AWS:

Configuración de Credenciales (Elija un Método):

Dependiendo de su entorno, puede configurar la Autenticación de Token de Identidad Web de varias maneras. Un método común es a través de variables de entorno:

Opción A: Variables de Entorno (comúnmente utilizadas en Kubernetes, EKS, CI/CD) Establezca lo siguiente:

AWS_ROLE_ARN– El rol IAM a asumir

AWS_WEB_IDENTITY_TOKEN_FILE– Ruta al archivo del token de identidad web

AWS_REGION– Región de AWS para operaciones (consulte docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html)

Opción B: Archivos de configuración de AWS CLI/SDK Puede configurar la asunción de roles a través de los archivos de configuración y credenciales de AWS. (Consulte docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)

Opción C: Roles IAM de EKS para Cuentas de Servicio (IRSA) Al utilizar EKS con IRSA, las credenciales se proporcionan automáticamente a sus pods; no se requieren variables de entorno ni archivos. (Consulte docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)

Características:

  • Utiliza roles de IAM en lugar de credenciales estáticas.

  • Las credenciales son temporales y se rotan automáticamente.

  • No hay claves de acceso almacenadas en el servicio.

  • Recomendado para entornos de producción

3. Cadena de Proveedores de Credenciales Predeterminada de AWS (Modo Predeterminado)

  • Este modo utiliza la cadena de proveedores de credenciales predeterminada del SDK de AWS, que busca automáticamente credenciales en múltiples ubicaciones, tales como:

    • Variables de entorno (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, etc.)

    • Propiedades del sistema Java

    • Perfiles de credenciales predeterminados (~/.aws/credentials)

    • Roles de IAM adjuntos a instancias de EC2 o tareas de ECS

Configuración

Si ipf.file-manager.s3.credentials-provider no se especifica que se utilizará esta Cadena de Proveedores de Credenciales Predeterminada de AWS.

Características:

  • Descubre automáticamente credenciales de múltiples fuentes.

  • Simplifica la gestión de credenciales en entornos diversos.

Configuración Común

Independientemente del modo de autenticación, estas propiedades son siempre aplicables:

ipf.file-manager.s3.enabled = true
ipf.file-manager.s3.endpoint-url = https://s3.eu-west-1.amazonaws.com
ipf.file-manager.s3.path-style-requests = false

Roles

El único rol de AWS requerido es s3: GetObject porque solo es necesaria la recuperación de archivos de un bucket S3 (más información docs.aws.amazon.com/AmazonS3/latest/userguide/security_iam_service-with-iam.html).

Uso de archivos versionados

Si el mismo archivo existe con diferentes versiones, el archivo con la versión más reciente se selecciona por defecto. Para seleccionar una versión específica, el parámetro de consulta versionId debe ser incluido en la solicitud. Ejemplo del mensaje de entrada con la versión específica del archivo:

Clave Valor

requestId

bicdir2018-req001

fileProvider

s3

filePath

s3://test-bucket.s3.amazonaws.com/BICDIR2018_V1_FULL.txt?versionId=HKPn Haf HX2uf Q-_fa JX-dw

fileName

BICDIR2018_V1_FULL.txt

sendAcknowledgment

verdadero

Configuración Adicional

Para obtener instrucciones de configuración detalladas y pautas de instalación, consulte Administrador de Archivos S3.