Stockage d'objets
- Mise à jour2026-07-09
- Temps de lecture : 10 minute(s)
Plusieurs services SystemLink Enterprise requièrent un fournisseur de stockage d'objets.
- Stockage Amazon S3
- Stockage compatible avec Amazon S3
- Stockage Blob Azure
Les paramètres figurant dans les tableaux suivants pour le stockage Amazon S3 et Azure Blob sont partagés entre plusieurs configurations. Ce partage s'effectue grâce à la syntaxe d'ancrage YAML dans les fichiers de valeurs Helm. Cette syntaxe offre un moyen pratique de partager une configuration commune dans l'ensemble de vos fichiers de valeurs. Vous pouvez remplacer ces valeurs par défaut par des valeurs personnalisées individuellement.
Fournisseurs de stockage Amazon S3 et compatibles Amazon S3
Définissez la configuration suivante dans votre fichier de configuration Helm aws-supplemental-values.yaml ou storage-values.yaml.
Vous pouvez configurer des références à des secrets dans les fichiers aws-secrets.yaml, storage-secrets.yaml ou directement sur le cluster.
| Paramètres avant la version 2025-07 | Paramètres après la version 2025-07 | Détails |
|---|---|---|
| N'est pas applicable |
|
Cette valeur représente le type de stockage du service. Attribuez la valeur s3. |
|
|
Cette valeur représente le numéro du port de service du fournisseur de stockage. |
|
|
Cette valeur représente le nom d'hôte du service du fournisseur de stockage. |
|
|
Cette valeur représente le schéma du service du fournisseur de stockage. Cette valeur est généralement https. |
|
|
Cette valeur représente la région AWS où se trouve le compartiment S3. |
|
Inchangée |
Traitez les marqueurs <ATTENTION>. Ces paramètres configurent le stockage distribué requis pour le service DataFrame. |
|
Inchangée | Nom du secret contenant les identifiants pour se connecter au service du fournisseur de stockage. |
À partir de la version 2025-11, fileingestioncdc ajoute les paramètres suivants.
| Paramètre | Détails |
|---|---|
| fileingestioncdc.highAvailability.storage.s3.port | Cette valeur représente le numéro de port du service du fournisseur de stockage. |
| fileingestioncdc.highAvailability.storage.s3.scheme | Cette valeur représente le schéma du service du fournisseur de stockage. Cette valeur est généralement https. |
Connexion des services à S3 via IAM
Attribuez un rôle IAM pour connecter les services à Amazon S3. Configurez les comptes de service et les annotations de rôle IAM dans votre fichier de valeurs Helm.
-
Créez un compte service pour chaque service en définissant serviceAccount.create: true dans votre fichier de valeurs Helm.Remarque Les services Flink ne requièrent pas cette configuration. L'opérateur Flink gère le compte service.
- Créez une stratégie IAM avec la déclaration suivante :
"Action": [ "s3:PutObject", "s3:ListBucket", "s3:GetObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Effect": "Allow", "Resource": [ "<s3_bucket_ARN>/*", "<s3_bucket_ARN>" ]
Remarque L'espace réservé <s3_bucket_ARN> représente le nom de ressource Amazon pour le compartiment S3 du service. - Créer un rôle IAM qui applique la nouvelle stratégie IAM.Remarque La plupart des rôles IAM utilisent la convention de nom suivante : <release-name>-<service-name>-role. Par exemple, systemlink-feedservice-role. Les services Flink partagent la même configuration que l'opérateur Flink et utilisent : <release-name>-flink-role.
| Service | Configuration |
|---|---|
| Service de ressource CDC |
assetservicecdc:
highAvailability:
storage:
s3:
authType: "AWS_IAM"
flinkoperator:
flink-kubernetes-operator:
jobServiceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-flink-role"
|
| Service DataFrame | dataframeservice:
storage:
s3:
authType: "AWS_IAM"
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-dataframeservice-role"dataframeservice:
sldremio:
distStorage:
aws:
authentication: "metadata"Remarque À partir de la version 2026-05, Dremio prend en charge l’identité de pod EKS pour le stockage distribué. Pour utiliser l'identité de pod, définissez sldremio.distStorage.aws.authentication sur podIdentity au lieu de métadonnées. dataframeservice:
sldremio:
storage:
s3:
authType: "EC2_METADATA"
roleArn: "arn:aws:iam::<account-id>:role/<release-name>-dataframeservice-role"Pour des étapes de configuration IAM Dremio supplémentaires, reportez-vous à Configurer l'authentification Dremio pour S3. |
| Service de flux |
feedservice:
storage:
s3:
authType: "AWS_IAM"
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-feedservice-role"
|
| Service d'ingestion de fichiers |
fileingestion:
storage:
s3:
authType: "AWS_IAM"
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-fileingestion-role"
|
| Ingestion de fichiers CDC |
fileingestioncdc:
highAvailability:
storage:
s3:
authType: "AWS_IAM"
flinkoperator:
flink-kubernetes-operator:
jobServiceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-flink-role"
|
| Service d'exécution de notebook |
nbexecservice:
storage:
s3:
authType: "AWS_IAM"
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-executions-role"
|
| Service système CDC |
systemscdc:
highAvailability:
storage:
s3:
authType: "AWS_IAM"
flinkoperator:
flink-kubernetes-operator:
jobServiceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-flink-role"
|
Configuration de l'authentification Dremio pour S3
Dremio requiert une authentification pour deux chemins de stockage S3.
- Stockage des données — Le compartiment DataFrame Service S3 qui stocke les données de table. Dremio accède à ce compartiment via les métadonnées d'instance EC2 en assumant le rôle IAM du service DataFrame.
- Stockage distribué — Un bucket S3 séparé utilisé par Dremio pour la coordination des requêtes et la mise en cache. À partir de la version 2026-05, NI recommande d’authentifier le stockage distribué via l’identité de pod EKS. Pour les versions antérieures ou lorsque l'identité du pod n'est pas disponible, utilisez l'authentification par métadonnées EC2.
Effectuez les étapes suivantes pour configurer l'authentification Dremio.
- Assurez-vous que la politique de confiance pour le rôle IAM DataFrame Service respecte les deux principes suivants.
- L'agent d'identité de pod EKS (pods.eks.amazonaws.com) doit avoir l'autorisation sts:AssumeRole et l'autorisation sts:TagSession.
- Le rôle de groupe de nœuds EC2 qui exécute les pods Dremio doit avoir l'autorisation sts:AssumeRole.
Remarque Le rôle DataFrame Service requiert le rôle de groupe de nœuds EC2 en tant que principal de confiance. Dremio accède au bucket DataFrame Service S3 en assumant ce rôle via l'authentification des métadonnées EC2. Si vous avez créé le rôle DataFrame Service après Connecting Services to S3 through IAM, mettez à jour la politique de confiance pour inclure le rôle de groupe de nœuds EC2 ARN. - Accordez au groupe de nœuds EC2 qui exécute des pods Dremio l'autorisation d'assumer le rôle IAM du service DataFrame. Pour accorder cette autorisation, ajoutez la déclaration suivante à la stratégie de rôle du groupe de nœuds.
{ "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Resource": "<dataframeservice_role_ARN>" } - Définissez dataframeservice.storage.s3.authType sur AWS_IAM.
- Définissez dataframeservice.sldremio.storage.s3.authType sur EC2_METADATA.
- Définissez dataframeservice.sldremio.storage.s3.roleArn sur le ARN de rôle IAM du service DataFrame.
- Configurez l'authentification de stockage distribué en utilisant l'une des options suivantes.
Tableau 36. Options de configuration de l'authentification de stockage distribué Option Étapes Identité de pod EKS Remarque NI recommande cette option- Créez un rôle IAM de stockage distribué Dremio.
- Créez une stratégie IAM avec les déclarations suivantes :
Ajoutez une instruction pour permettre la découverte globale du compartiment S3.
{ "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "arn:aws:s3:::*" }Ajoutez une instruction pour autoriser l'accès au compartiment de stockage distribué.
{ "Action": [ "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "<distributed_storage_bucket_ARN>", "<distributed_storage_bucket_ARN>/*" ] } - Créez le rôle IAM avec une politique de confiance qui autorise l'agent d'identité de pod EKS (pods.eks.amazonaws.com) avec les autorisations sts:AssumeRole et sts:TagSession.
- Joignez la politique IAM au rôle.
- Créez une stratégie IAM avec les déclarations suivantes :
- Créez des associations d'identité de pod EKS entre le rôle de stockage distribué Dremio, le compte de service dremio-coordinator et le compte de service dremio-executor.
- Définissez dataframeservice.sldremio.distStorage.aws.authentication sur podIdentity.
Métadonnées EC2 Remarque Utilisez cette option lorsque l'identité du pod n'est pas disponible- Ajoutez une déclaration à la politique de rôle pour le groupe de nœuds EC2 afin de permettre la découverte globale du bucket S3.
{ "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "arn:aws:s3:::*" } Ajoutez une instruction à la stratégie de rôle du groupe de nœuds EC2 pour autoriser l'accès au compartiment de stockage distribué.
{ "Action": [ "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "<distributed_storage_bucket_ARN>", "<distributed_storage_bucket_ARN>/*" ] }Remarque Si le bucket DataFrame Service S3 et le bucket de stockage distribué Dremio sont identiques, utilisez le même bucket ARN dans les domaines suivants.- La politique de rôle du service DataFrame.
- Les déclarations précédentes.
- Définissez dataframeservice.sldremio.distStorage.aws.authentication sur métadonnées.
- Créez un rôle IAM de stockage distribué Dremio.
- Si vos compartiments S3 utilisent le cryptage SSE-KMS, assurez-vous que les rôles suivants ont les autorisations kms:GenerateDataKey et kms:Decrypt sur la clé KMS.
- Rôle IAM du service DataFrame
- Rôle de stockage distribué DremioRemarque Si votre authentification de stockage distribué utilise des métadonnées EC2, définissez le rôle du groupe de nœuds EC2.
- Supprimez la configuration de clé d'accès Dremio S3 des secrets lors de l'utilisation de l'authentification basée sur IAM.
Pour des raisons de sécurité, NI recommande d'exécuter Dremio sur un groupe de nœuds dédié.
Pour utiliser l'authentification de métadonnées EC2 à partir de pods, vous devez avoir une limite de saut IMDS (Instance Metadata Service) supérieure à 1. Une limite de saut supérieure ou égale à 2 permet aux pods de récupérer les informations d'identification en plus du nœud.
Connexion des services à S3 à l'aide de clés d'accès
Connectez vos services à S3 via des clés d'accès dans les cas suivants.
- Fournisseurs de stockage compatibles S3 : seul Amazon S3 supporte l'authentification basée sur les rôles IAM. Pour les autres fournisseurs compatibles S3, utilisez l'authentification par clé d'accès.
- Déploiements AWS sans configuration de rôle IAM : si l'identité de pod et IRSA ne sont pas disponibles, vous pouvez utiliser l'authentification par clé d'accès.
| Configuration | Description |
|---|---|
| Fichier de valeurs |
Dans votre fichier systemlink-values.yaml ou aws-supplemental-values.yaml, spécifiez les paramètres de connexion S3 et la référence secrète. feedservice:
storage:
s3:
secretName: "feeds-s3-credentials"
accessKeyIdName: "aws-access-key-id"
accessKeyName: "aws-secret-access-key"
authType: "ACCESS_KEY"
bucket: "systemlink-feeds"
scheme: "https://"
host: "s3.amazonaws.com"
port: 443
region: "us-east-1"
|
| Fichier secret |
Dans votre fichier systemlink-secrets.yaml ou aws-secrets.yaml, fournissez les informations d'identification d'accès. feedservice:
secrets:
s3:
accessKeyId: "<your-access-key-id>"
accessKey: "<your-secret-access-key>"
|
Le même modèle s'applique aux autres services lorsque l'authentification IAM n'est pas disponible.
Fournisseurs de Stockage Blob Azure
Définissez la configuration suivante dans votre fichier de configuration Helm azure-supplemental-values.yaml ou storage-values.yaml.
Vous pouvez configurer des références à des secrets dans le fichier azure-secrets.yaml, le fichier storage-secrets.yaml ou directement sur le cluster.
| Paramètres à partir de la version 2025-07 | Détails |
|---|---|
|
Cette valeur représente le type de stockage du service. Attribuez la valeur azur. |
|
Cette valeur représente l'hôte du stockage Blob Azure sans le nom du compte. Par exemple, vous pouvez attribuer la valeur blob.core.windows.net ou blob.core.usgovcloudapi.net. Si votre stockage n'utilise pas le port par défaut, ajoutez le port à la fin de l'hôte. Par exemple, blob.core.windows.net:1234. |
|
Cette valeur représente l'hôte et le port du stockage Azure Data Lake auquel se connecter sans le nom de compte. Par exemple, vous pouvez définir la valeur à dfs.core.windows.net. Si votre stockage n'utilise pas le port par défaut, ajoutez le port à la fin de l'hôte. Par exemple : dfs.core.windows.net:1234. |
|
Cette valeur représente le compte de stockage de votre service. NI recommande d'utiliser différents comptes de stockage pour différents services. |
Connexion des services au stockage Azure Blob
Pour configurer l'authentification Azure Blob Storage, vous devez configurer le fichier de valeurs et le fichier de secrets.
Configurez l'authentification Azure Blob Storage en utilisant le fichier de valeurs et le fichier de secrets.
Dans votre fichier azure-supplemental-values.yaml ou storage-values.yaml, spécifiez les paramètres de stockage Azure.
feedservice:
storage:
type: "azure"
azure:
accountName: "<your-azure-storage-account-name>"
blobApiHost: "blob.core.windows.net"Dans votre fichier azure-secrets.yaml, fournissez les informations d'identification d'accès.
feedservice:
secrets:
azure:
accessKey: "<your-azure-storage-access-key>"Il en va de même pour les autres services.
Limites et considérations financières pour le stockage de fichiers
Pour ajuster les limites et les coûts des services de stockage de fichiers, reportez-vous aux configurations suivantes.
| Considération | Configuration |
|---|---|
| Réduire les coûts de stockage. |
Pour supprimer les chargements en plusieurs parties incomplets, attribuez la configuration appropriée à votre service. Si vous utilisez Amazon S3, attribuez la valeur AbortIncompleteMultipartUpload à vos compartiments S3.
Remarque Le stockage Azure supprime automatiquement les blocs non validés au bout de sept jours. Pour les autres fournisseurs compatibles S3, reportez-vous à la documentation du fournisseur. |
| Ajuster le nombre de fichiers qu'un seul utilisateur peut télécharger par seconde. |
Configurez la valeur fileingestion.rateLimits.upload. Par défaut, la valeur est de 3 fichiers par seconde et par utilisateur. En équilibrant la charge entre les répliques, la vitesse effective est supérieure à la vitesse spécifiée. |
| Ajuster la taille de fichier maximale que les utilisateurs peuvent télécharger. |
Configurez la valeur fileingestion.uploadLimitGB. Par défaut, cette valeur est de 2 Go. |
| Ajuster le nombre de requêtes simultanées qu'un seul duplicata peut servir pour ingérer des données. |
Configurez la valeur dataframeservice.rateLimits.ingestion.requestLimit. |
Contenu associé
- SystemLink Enterprise dans AWS EKS
Amazon Elastic Kubernetes Service (EKS) est un service Kubernetes géré qui simplifie l'exécution de Kubernetes sur AWS sans avoir besoin d'installer et d'opérer votre propre plan de contrôle Kubernetes.
- SystemLink Enterprise dans Azure AKS
Azure Kubernetes Service (AKS) est un service Kubernetes géré qui simplifie l’exécution de Kubernetes sur Azure sans avoir besoin d’installer et d’utiliser votre propre plan de contrôle Kubernetes.
- systemlink-values.yaml
- azure-supplemental-values.yaml
- aws-supplemental-values.yaml
- systemlink-secrets.yaml
- azure-secrets.yaml
- aws-secrets.yaml
- Référence de l'API Amazon S3
- Protection des données Amazon S3 avec cryptage
- Configuration d'une configuration de cycle de vie de compartiment pour supprimer les chargements partitionnés incomplets
- Suppression réversible d'objets blob
- Espace de noms hiérarchique du stockage Azure Data Lake
- Considérations relatives à l'accès IMDS
- Configuration Dremio
Le service SystemLink DataFrame stocke et indexe les données tabulaires en utilisant Dremio.
- Rotation de secrets
Les SystemLink Enterprise secrets peuvent devoir être modifiés ou modifiés en fonction des changements apportés à votre environnement, aux politiques de sécurité de votre organisation ou à d'autres exigences opérationnelles. Différents secrets nécessitent différentes procédures pour assurer le bon fonctionnement après modification.