Cette approche permet aux clients de gérer tous les accès à leurs buckets S3 depuis un point central (la stratégie IAM du rôle assumé), sans avoir à parcourir toutes leurs stratégies de bucket pour ajouter ou supprimer des accès. Dans la section ci-dessous, vous verrez comment configurer cela.
Récupérez l’ARN du rôle IAM de votre service ClickHouse
- Connectez-vous à votre compte ClickHouse Cloud.
- Sélectionnez le service ClickHouse pour lequel vous souhaitez créer l’intégration
- Sélectionnez l’onglet Settings
- Faites défiler la page jusqu’à la section Network security information, en bas de la page
- Copiez la valeur Service role ID (IAM) associée au service, comme indiqué ci-dessous.
Configurer le rôle IAM à assumer
Déploiement avec une stack CloudFormation
- Connectez-vous à votre AWS account dans le navigateur web avec un utilisateur IAM autorisé à créer et gérer des rôles IAM.
- Accédez à l’URL CloudFormation suivante pour renseigner la stack CloudFormation.
- Saisissez (ou collez) le Service role ID (IAM) de votre service, que vous avez obtenu précédemment, dans le champ intitulé “ClickHouse Instance Roles” Vous pouvez coller le Service role ID exactement tel qu’il apparaît dans la Cloud Console.
-
Saisissez le nom de votre bucket dans le champ intitulé “Bucket Names”. Si l’URL de votre bucket est
https://ch-docs-s3-bucket.s3.eu-central-1.amazonaws.com/clickhouseS3/, alors le nom du bucket estch-docs-s3-bucket.
N’indiquez pas l’ARN complet du bucket, uniquement son nom.
- Configurez la stack CloudFormation. Vous trouverez ci-dessous des informations complémentaires sur ces paramètres.
- Cochez la case I acknowledge that AWS CloudFormation might create IAM resources with custom names.
- Cliquez sur le bouton Create stack en bas à droite
- Assurez-vous que la stack CloudFormation se termine sans erreur.
- Sélectionnez la stack nouvellement créée, puis l’onglet Outputs de la stack CloudFormation
- Copiez la valeur RoleArn pour cette integration, car c’est elle qui vous permettra d’accéder à votre bucket S3.
Créer manuellement un rôle IAM
- Connectez-vous à votre compte AWS dans votre navigateur web avec un utilisateur IAM disposant des autorisations nécessaires pour créer et gérer des rôles IAM.
- Accédez à la console du service IAM
-
Créez un nouveau rôle IAM avec la stratégie IAM et la politique d’approbation suivantes. Remplacez
{ClickHouse_IAM_ARN}par l’ARN du rôle IAM associé à votre instance ClickHouse.
- Copiez le nouvel IAM Role Arn une fois créé : c’est ce dont vous avez besoin pour accéder à votre bucket S3.
Accédez à votre bucket S3 avec le rôle ClickHouseAccess
extra_credentials dans le cadre de la fonction de table S3.
Vous trouverez ci-dessous un exemple montrant comment exécuter une requête à l’aide du rôle nouvellement créé, copié depuis la section ci-dessus.
role_session_name comme secret partagé pour interroger des données dans un bucket.
Si role_session_name n’est pas correct, cette opération échouera.
Nous recommandons que votre source S3 se trouve dans la même région que votre service ClickHouse Cloud afin de réduire les coûts de transfert de données.
Pour plus d’informations, consultez la tarification d’S3
Contrôle avancé des actions
aws:SourceVpce. Pour obtenir les endpoints VPC de votre région ClickHouse Cloud, ouvrez un terminal et exécutez :