Vue d’ensemble
- Obtenez l’ID du rôle de service ClickHouse Cloud (IAM).
- Créez un rôle IAM dans votre compte AWS que ClickHouse peut assumer.
- Associez au rôle des politiques d’objet et de catalogue spécifiques à Iceberg.
- Utilisez les fonctions de table Iceberg ou le moteur de table IcebergS3 avec des identifiants liés à un rôle.
Obtenir l’ID du rôle de service ClickHouse (ARN)
1
1. Connectez-vous à votre compte ClickHouse Cloud.
2
2. Sélectionnez le service ClickHouse sur lequel vous souhaitez interroger les données Iceberg.
3
3. Accédez à l’onglet Settings.
4
4. Faites défiler la page jusqu’à Network security information.
5
5. Copiez la valeur Service role ID (IAM).
Cet ARN est requis dans la politique d’approbation du rôle AWS IAM qui accédera à vos données Iceberg.Configurer l’action d’assumer un rôle IAM
1
1. Connectez-vous à AWS et accédez au service IAM.
2
2. Sélectionnez Roles, puis Create role.
SélectionnezTrusted entity type comme Custom trust policy, puis saisissez les valeurs en vous basant sur l’étape 3.3
3. Ajoutez les politiques d’approbation et IAM.
Remplacez{service-role-id} par le Service Role ID (IAM) de votre instance ClickHouse.Pour les charges de travail en lecture/écriture, la politique IAM doit inclure
s3:PutObject, s3:DeleteObject ainsi que les actions de modification des métadonnées pour Iceberg. L’exemple ci-dessus est volontairement restrictif et en lecture seule.Si vous avez besoin d’une isolation plus forte, exigez que les requêtes proviennent des points de terminaison VPC de ClickHouse Cloud. Pour plus d’informations sur cette option, consultez Contrôle avancé et sécurisé des actions S3.4
4. Finalisez la création du rôle.
a. Cliquez sur Next, puis encore sur Next dans l’écran d’attribution des permissions.b. Ajoutez un nom (par ex.iceberg-role-for-clickhouse) et une description.c. Ajoutez des tags (facultatif).d. Vérifiez les politiques.e. Sélectionnez Create role.5
5. Copiez le nouvel IAM Role Arn une fois le rôle créé.
Configurer l’accès à Iceberg dans ClickHouse Cloud
Option A : fonction de table Iceberg avec ARN de rôle
icebergS3 avec l’option NOSIGN et des identifiants associés à un rôle. ClickHouse Cloud appellera STS pour assumer le rôle.
Option B : Moteur de table Iceberg persistant
Option C : catalogue Glue + IcebergS3
Remarque : lorsque vous utilisez le catalogue Glue, assurez-vous que votre rôle IAM dispose des autorisations de lecture et de listage pour S3 et Glue.
Option D : catalogue DataLake pour Glue
Le catalogue DataLake pour Glue est prévu dans la version 26.2.
Vérifier l’accès
- Exécutez une requête simple :
- Vérifiez la présence d’erreurs IAM telles que
AccessDeniedouInvalidAccessKeyId.
Dépannage
- Vérifiez l’ARN du rôle dans les paramètres du service ClickHouse Cloud.
- Assurez-vous que votre bucket et vos objets se trouvent dans la même région que celle utilisée pour les requêtes Iceberg, afin de réduire la latence et les coûts.
- Vérifiez que le chemin de la table Iceberg pointe vers un emplacement de métadonnées Iceberg valide (fichiers
metadata/v1/...sous la racine de la table). - En mode catalogue, vérifiez les métadonnées Glue et la visibilité des partitions dans la console AWS Glue.