> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IAM y facturación

En AWS Marketplace, FineParser Enterprise se factura por hora de pod de worker, según la tarifa de la oferta. Cada worker se registra en AWS Marketplace al iniciarse, y su uso se mide hasta que se detiene. El orquestador y el componente de ingesta no se facturan, por lo que un pool escalado a cero no genera cargos de software. Los workers que se mantienen en ejecución mediante `scaling.minWorkers` se facturan aunque no tengan trabajo.

Los workers se registran con un rol de IAM de su cuenta mediante roles de IAM para cuentas de servicio (IRSA). No se admiten EKS Pod Identity, roles de nodo ni claves de acceso. Si un worker no puede registrarse, finaliza sin aceptar trabajo.

## Crear el rol y la cuenta de servicio

El rol necesita la política administrada por AWS `AWSMarketplaceMeteringRegisterUsage` y debe confiar en la cuenta de servicio con la que se ejecuta la release.

> [!WARNING]
>
> A pesar de su nombre, `AWSMarketplaceMeteringFullAccess` no concede `RegisterUsage`. Se rechazan los workers que la usan para firmar.

> [tab] Su propia cuenta de servicio
>
> `eksctl` crea a la vez el rol y una cuenta de servicio con la anotación correspondiente:
>
> ```bash theme={null}
> eksctl create iamserviceaccount \
>   --cluster <cluster> --region <region> \
>   --namespace fineparser --name fineparser \
>   --role-name FineParserMetering \
>   --attach-policy-arn arn:aws:iam::aws:policy/AWSMarketplaceMeteringRegisterUsage \
>   --approve
> ```
>
> ```yaml fineparser-values.yaml theme={null}
> serviceAccount:
>   create: false
>   name: fineparser
> ```
>
> Es posible que las instrucciones de lanzamiento de AWS Marketplace rellenen `serviceAccount.name`. Este valor debe corresponder a una cuenta de servicio configurada de esta manera.

> [tab] Cuenta de servicio creada por el chart
>
> Para una release llamada `fineparser`, el chart asigna a su cuenta de servicio el nombre `fineparser-orchestrator`. Cree un rol que confíe en ese nombre y, a continuación, añada la anotación correspondiente a la cuenta del chart:
>
> ```bash theme={null}
> eksctl create iamserviceaccount \
>   --cluster <cluster> --region <region> \
>   --namespace fineparser --name fineparser-orchestrator \
>   --role-name FineParserMetering --role-only \
>   --attach-policy-arn arn:aws:iam::aws:policy/AWSMarketplaceMeteringRegisterUsage \
>   --approve
> ```
>
> ```yaml fineparser-values.yaml theme={null}
> serviceAccount:
>   annotations:
>     eks.amazonaws.com/role-arn: arn:aws:iam::<account>:role/FineParserMetering
> ```

Si crea el rol de otra manera, su política de confianza debe permitir `sts:AssumeRoleWithWebIdentity` desde el proveedor OIDC del clúster, con `sub` establecido en `system:serviceaccount:<namespace>:<service-account>` y `aud` establecido en `sts.amazonaws.com`.

## Región

Los workers se registran en la región que inyecta el webhook de identidad de pods de EKS. Configure `awsMarketplace.region` solo si su clúster no inyecta `AWS_REGION`.

## Comprobar que la facturación funciona

Una vez que un trabajo haya iniciado un worker:

```bash theme={null}
kubectl -n fineparser logs deploy/fineparser-worker | grep billing
# billing: registrado en AWS Marketplace, el uso de este pod se mide por horas
```

Cualquier otro resultado indica cuál es el problema. Consulte [Solución de problemas](https://docs.abbyy.com/es/fine-parser/enterprise/reference/troubleshooting.md#workers-exit-at-startup).
