> ## 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 et facturation

Sur AWS Marketplace, FineParser Enterprise est facturé à l’heure de pod de traitement, au tarif indiqué dans l’offre. Chaque processus de traitement s’enregistre auprès d’AWS Marketplace à son démarrage, et son utilisation est mesurée jusqu’à son arrêt. L’orchestrateur et le service d’ingestion ne sont pas facturés : un pool réduit à zéro n’entraîne donc aucuns frais logiciels. Les processus de traitement maintenus actifs par `scaling.minWorkers` sont facturés, qu’ils aient ou non des tâches à traiter.

Les processus de traitement s’enregistrent au moyen d’un rôle IAM de votre compte, via les rôles IAM pour les comptes de service (IRSA). EKS Pod Identity, les rôles de nœud et les clés d’accès ne sont pas pris en charge. Un processus de traitement qui ne parvient pas à s’enregistrer s’arrête sans prendre en charge aucune tâche.

## Créer le rôle et le compte de service

Le rôle nécessite la stratégie gérée par AWS `AWSMarketplaceMeteringRegisterUsage` et doit faire confiance au compte de service sous lequel la release s'exécute.

> [!WARNING]
>
> Malgré son nom, `AWSMarketplaceMeteringFullAccess` n'accorde pas `RegisterUsage`. Les requêtes des processus de traitement signées avec cette stratégie sont refusées.

> [tab] Votre propre compte de service
>
> `eksctl` crée à la fois le rôle et un compte de service annoté :
>
> ```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
> ```
>
> Les instructions de lancement d'AWS Marketplace peuvent renseigner `serviceAccount.name`. Cette valeur doit désigner un compte de service configuré de cette manière.

> [tab] Compte de service créé par le chart
>
> Pour une release nommée `fineparser`, le chart nomme son compte de service `fineparser-orchestrator`. Créez un rôle qui fait confiance à ce nom, puis ajoutez au compte du chart une annotation faisant référence à ce rôle :
>
> ```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 vous créez le rôle autrement, sa stratégie d'approbation doit autoriser `sts:AssumeRoleWithWebIdentity` depuis le fournisseur OIDC du cluster, avec `sub` défini sur `system:serviceaccount:<namespace>:<service-account>` et `aud` défini sur `sts.amazonaws.com`.

## Région

Les processus de traitement s'enregistrent dans la région injectée par le webhook EKS Pod Identity. Ne définissez `awsMarketplace.region` que si votre cluster n'injecte pas `AWS_REGION`.

## Vérifier le bon fonctionnement de la facturation

Une fois qu'une tâche a lancé un processus de traitement :

```bash theme={null}
kubectl -n fineparser logs deploy/fineparser-worker | grep billing
# billing: enregistré auprès d'AWS Marketplace, ce pod est facturé à l'heure
```

Tout autre résultat indique la nature du problème. Voir [Dépannage](https://docs.abbyy.com/fr/fine-parser/enterprise/reference/troubleshooting.md#workers-exit-at-startup).
