	{"id":68170,"date":"2022-10-10T10:16:34","date_gmt":"2022-10-10T09:16:34","guid":{"rendered":"https:\/\/www.artefact.com\/?post_type=blog&#038;p=68170"},"modified":"2024-09-20T17:45:51","modified_gmt":"2024-09-20T16:45:51","slug":"snowflake-access-control-at-scale","status":"publish","type":"blog","link":"https:\/\/www.artefact.com\/fr\/blog\/snowflake-access-control-at-scale\/","title":{"rendered":"Contr\u00f4le d'acc\u00e8s Snowflake \u00e0 l'\u00e9chelle"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling article-author\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-background-color:#ffffff;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_2 1_2 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:50%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Auteur<\/h2><\/div><img decoding=\"async\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27150%27%20height%3D%270%27%20viewBox%3D%270%200%20150%200%27%3E%3Crect%20width%3D%27150%27%20height%3D%270%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/10\/benoit-goujon.jpeg\" alt=\"Image\" class=\"lazyload artefact-elegant-image align-left article-author-image\" style=\"width: 150px; border-radius: 54% 46% 77% 23% \/ 74% 40% 60% 26%; overflow: hidden;\" width=\"150\" height=\"auto\" \/><div class=\"fusion-title title fusion-title-2 fusion-sep-none fusion-title-text fusion-title-size-three article-author-name-title\" style=\"--awb-margin-bottom-small:8px;\"><h3 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:20;line-height:1.2;\">Beno\u00eet Goujon<\/h3><\/div><div class=\"fusion-text fusion-text-1 article-author-description\" style=\"--awb-text-transform:none;\"><p>Data Engineer \u00e0 Artefact<\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-margin-top:40px;--awb-margin-bottom:40px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-center fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-flex-align-self-center fusion-column-inner-bg-wrapper\" style=\"--awb-padding-top:20px;--awb-padding-right:20px;--awb-padding-bottom:20px;--awb-padding-left:20px;--awb-overflow:hidden;--awb-inner-bg-size:cover;--awb-border-color:rgba(10,17,40,0.1);--awb-border-top:1px;--awb-border-right:1px;--awb-border-bottom:1px;--awb-border-left:1px;--awb-border-style:solid;--awb-border-radius:4px 4px 4px 4px;--awb-inner-bg-border-radius:4px 4px 4px 4px;--awb-inner-bg-overflow:hidden;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><span class=\"fusion-column-inner-bg hover-type-none\"><a class=\"fusion-column-anchor\" href=\"https:\/\/medium.com\/artefact-engineering-and-data-science\/snowflake-access-management-at-scale-44b7add1b978\" rel=\"noopener noreferrer\" target=\"_blank\"><span class=\"fusion-column-inner-bg-image\"><\/span><\/a><\/span><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-center fusion-content-layout-row fusion-flex-align-items-center\"><div class=\"fusion-text fusion-text-2\"><p><u>Lisez notre article sur<\/u><\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-margin-right:20px;--awb-margin-left:20px;--awb-max-width:150px;--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-1 hover-type-none\"><img decoding=\"async\" width=\"4000\" height=\"992\" title=\"Moyen Blog\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog.png\" alt class=\"lazyload img-responsive wp-image-60582\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%274000%27%20height%3D%27992%27%20viewBox%3D%270%200%204000%20992%27%3E%3Crect%20width%3D%274000%27%20height%3D%27992%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-200x50.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-400x99.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-600x149.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-800x198.png 800w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-1200x298.png 1200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog.png 4000w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 4000px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-3\"><p>.<\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-4 description\" style=\"--awb-text-transform:none;\"><p>Comment nous avons automatis\u00e9 la gestion d'un compte de plus de 50 utilisateurs tout en respectant les normes data governance<\/p>\n<\/div><\/div><\/div><\/div><\/div><article class=\"fusion-fullwidth fullwidth-box fusion-builder-row-4 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-5\" style=\"--awb-text-transform:none;\"><p>De plus en plus d'entreprises placent Snowflake au c\u0153ur de leur data platforms. M\u00eame s'il s'agit d'une solution g\u00e9r\u00e9e, vous devez toujours administrer l'environnement. Cela peut \u00eatre un d\u00e9fi, en particulier pour les grandes entreprises.<\/p>\n<p>L'un des d\u00e9fis consiste \u00e0\u00a0<strong>le contr\u00f4le d'acc\u00e8s<\/strong>. Il s'agit d'un \u00e9l\u00e9ment essentiel de tout programme data governance. Snowflake fournit\u00a0<a class=\"au lc\" href=\"https:\/\/docs.snowflake.com\/en\/user-guide\/security-access-control-overview.html\" target=\"_blank\" rel=\"noopener ugc nofollow\">caract\u00e9ristiques pr\u00eates \u00e0 l'emploi<\/a>\u00a0pour vous aider \u00e0 relever ce d\u00e9fi. Mais lorsque vous avez des dizaines d'utilisateurs et des t\u00e9raoctets de data, les fonctions int\u00e9gr\u00e9es ne suffisent pas. Vous devez r\u00e9fl\u00e9chir \u00e0 une strat\u00e9gie de gestion de votre compte.<\/p>\n<p>Nous sommes pass\u00e9s par l\u00e0. Pour l'un des <a href=\"https:\/\/www.artefact.com\/fr\/about-us\/\">nos clients<\/a>, Nous avons g\u00e9r\u00e9 un compte avec plus de 50 utilisateurs actifs. Nous avons con\u00e7u une solution permettant d'\u00e9chelonner la gestion du contr\u00f4le d'acc\u00e8s.<\/p>\n<p>Cet article d\u00e9crit les principaux enseignements tir\u00e9s de l'ann\u00e9e \u00e9coul\u00e9e.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-3 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Situation initiale<\/p><\/h2><\/div><div class=\"fusion-text fusion-text-6\" style=\"--awb-text-transform:none;\"><p>Avant que nous ne rejoignions l'entreprise, le compte avait \u00e9t\u00e9 cr\u00e9\u00e9 et de nombreuses bonnes id\u00e9es avaient \u00e9t\u00e9 mises en \u0153uvre.\u00a0<a class=\"au lc\" href=\"https:\/\/docs.snowflake.com\/en\/user-guide\/security-access-control-overview.html#custom-roles\" target=\"_blank\" rel=\"noopener ugc nofollow\">R\u00f4les personnalis\u00e9s<\/a>\u00a0a \u00e9t\u00e9 cr\u00e9\u00e9. Les utilisateurs sont g\u00e9r\u00e9s avec soin. Mais il y a quelques limitations :<\/p>\n<\/div><ul style=\"--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;\" class=\"fusion-checklist fusion-checklist-1 fusion-checklist-default type-icons\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">L'administration a \u00e9t\u00e9 effectu\u00e9e\u00a0<strong>manuellement<\/strong>\u00a0ce qui a pris beaucoup de temps aux responsables.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Les analystes et les d\u00e9veloppeurs de Data utilisaient leurs comptes pour des t\u00e2ches automatis\u00e9es. Cela posait un probl\u00e8me car les employ\u00e9s devaient partager leurs mots de passe. Outre l'important probl\u00e8me de s\u00e9curit\u00e9, il y avait des bogues dus \u00e0 la r\u00e9vocation des identifiants lorsque les employ\u00e9s quittaient l'entreprise.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Il y avait\u00a0<strong>pas de documentation<\/strong>\u00a0des r\u00f4les en place, ce qui rend difficile l'audit des autorisations actuelles et leur r\u00e9vision r\u00e9guli\u00e8re.<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Les utilisateurs \u00e9taient g\u00e9r\u00e9s exclusivement \u00e0 partir de Snowflake. Lorsque des employ\u00e9s quittaient l'entreprise, les administrateurs de l'environnement Snowflake devaient en \u00eatre conscients. L'\u00e9quipe en charge de la gestion des utilisateurs (Active Directory) n'\u00e9tait pas la m\u00eame que celle en charge du compte Snowflake. Il y avait donc un risque que d'anciens employ\u00e9s puissent acc\u00e9der au data de l'entreprise apr\u00e8s leur d\u00e9part.<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-7\" style=\"--awb-text-transform:none;\"><p>Nous avons cr\u00e9\u00e9 un nouveau syst\u00e8me pour g\u00e9rer le contr\u00f4le d'acc\u00e8s et lutter contre ces lacunes.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-4 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Conception du cadre de contr\u00f4le d'acc\u00e8s<\/p><\/h2><\/div><div class=\"fusion-text fusion-text-8\" style=\"--awb-text-transform:none;\"><p>Tout d'abord, nous avons r\u00e9voqu\u00e9 tous les r\u00f4les attribu\u00e9s par d\u00e9faut (SYSADMIN, USERADMIN ...) aux utilisateurs ... Seules quelques personnes ont pu assumer ces r\u00f4les. Il s'agissait des personnes charg\u00e9es de l'administration.<\/p>\n<p>Deuxi\u00e8mement, nous avons cr\u00e9\u00e9 un cadre de contr\u00f4le d'acc\u00e8s bas\u00e9 sur des r\u00f4les personnalis\u00e9s. Nous avons d\u00e9fini deux types de r\u00f4les personnalis\u00e9s :<\/p>\n<\/div><ul style=\"--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;\" class=\"fusion-checklist fusion-checklist-2 fusion-checklist-default type-icons\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p><strong>R\u00f4les d'acc\u00e8s<\/strong>\u00a0Les r\u00f4les d'acc\u00e8s couvrent un ensemble de privil\u00e8ges de bas niveau sur les objets Snowflake. Par exemple, un r\u00f4le d'acc\u00e8s peut englober des privil\u00e8ges de lecture seule sur une database particuli\u00e8re. Ils ne sont pas accord\u00e9s directement aux utilisateurs.<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p><strong>R\u00f4les fonctionnels<\/strong>\u00a0sont les r\u00f4les accord\u00e9s aux utilisateurs. Ils englobent un ensemble de r\u00f4les d'acc\u00e8s. Ils sont cr\u00e9\u00e9s pour une \u00e9quipe sp\u00e9cifique.<\/p>\n<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-9\" style=\"--awb-text-transform:none;\"><p>Nous avons choisi de d\u00e9finir les r\u00f4les d'acc\u00e8s au\u00a0<strong>dataniveau de base<\/strong>. Il permet de r\u00e9pliquer facilement les privil\u00e8ges d'un environnement \u00e0 l'autre en utilisant le clonage sans copie. Il s'agit \u00e9galement d'un\u00a0<strong>compromis<\/strong>\u00a0entre la flexibilit\u00e9 que nous accordons aux utilisateurs finaux et l'application stricte du principe du moindre privil\u00e8ge.<\/p>\n<p>Au niveau du database, nous avons d\u00e9fini 3 niveaux de r\u00f4les d'acc\u00e8s :<\/p>\n<\/div><ul style=\"--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;\" class=\"fusion-checklist fusion-checklist-3 fusion-checklist-default type-icons\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Lecture seule<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Lire et \u00e9crire<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Administrateur<\/p>\n<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-10\" style=\"--awb-text-transform:none;\"><p>Nous avons appliqu\u00e9 une strat\u00e9gie similaire \u00e0 l'acc\u00e8s aux entrep\u00f4ts avec deux types de r\u00f4les :<\/p>\n<\/div><ul style=\"--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;\" class=\"fusion-checklist fusion-checklist-4 fusion-checklist-default type-icons\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Utilisateur<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Administrateur<\/p>\n<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-11\" style=\"--awb-text-transform:none;\"><p>Vous trouverez ci-dessous une illustration de notre cadre. Les fl\u00e8ches repr\u00e9sentent les subventions.<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-2 hover-type-none\"><img decoding=\"async\" width=\"632\" height=\"596\" alt=\"Below is an illustration of our framework. Arrows represent grants. Snowflakes\" title=\"Vous trouverez ci-dessous une illustration de notre cadre. Les fl\u00e8ches repr\u00e9sentent les subventions.\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/Below-is-an-illustration-of-our-framework.-Arrows-represent-grants..png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/Below-is-an-illustration-of-our-framework.-Arrows-represent-grants..png\" class=\"lazyload img-responsive wp-image-68174\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27632%27%20height%3D%27596%27%20viewBox%3D%270%200%20632%20596%27%3E%3Crect%20width%3D%27632%27%20height%3D%27596%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/Below-is-an-illustration-of-our-framework.-Arrows-represent-grants.-200x189.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/Below-is-an-illustration-of-our-framework.-Arrows-represent-grants.-400x377.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/Below-is-an-illustration-of-our-framework.-Arrows-represent-grants.-600x566.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/Below-is-an-illustration-of-our-framework.-Arrows-represent-grants..png 632w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 632px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-12\" style=\"--awb-text-transform:none;\"><p>\u00c0 ce stade, nous avions une meilleure id\u00e9e de la mani\u00e8re dont nous allions g\u00e9rer les autorisations, mais nous avions \u00e9galement des probl\u00e8mes avec la gestion des utilisateurs.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-5 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Gestion des utilisateurs<\/p><\/h2><\/div><div class=\"fusion-text fusion-text-13\" style=\"--awb-text-transform:none;\"><p>Nous avons mis en place\u00a0<strong>Signature unique<\/strong>\u00a0pour permettre aux utilisateurs de Snowflake de\u00a0<strong>connectez-vous via Azure Active Directory (AAD)<\/strong>. Ainsi, nous avons supprim\u00e9 la complexit\u00e9 li\u00e9e \u00e0 la gestion de deux bases data d'utilisateurs et le processus de d\u00e9sinscription a \u00e9t\u00e9 plus robuste. En effet, il nous suffisait de d\u00e9sactiver l'utilisateur dans l'AAD et la suppression \u00e9tait automatiquement r\u00e9pliqu\u00e9e dans Snowflake.<\/p>\n<p>Comme il existe une correspondance entre les groupes AD et les r\u00f4les dans Snowflake, nous avons pu attribuer un r\u00f4le \u00e0 chaque utilisateur que nous avons cr\u00e9\u00e9. Nous suivons le m\u00eame processus pour chaque nouvel utilisateur.<\/p>\n<\/div><ul style=\"--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;\" class=\"fusion-checklist fusion-checklist-5 fusion-checklist-default type-icons paddingList dark-text\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Ils envoient une demande via notre syst\u00e8me de billetterie dans laquelle ils expliquent l'\u00e9quipe \u00e0 laquelle ils appartiennent et leurs besoins en termes d'acc\u00e8s.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Nous ajoutons l'utilisateur au(x) groupe(s) AD correspondant(s).<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>La synchronisation se fait en arri\u00e8re-plan<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>L'utilisateur peut acc\u00e9der \u00e0 Snowflake et utiliser le r\u00f4le que nous lui avons attribu\u00e9.<\/p>\n<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-14\" style=\"--awb-text-transform:none;\"><p>Il s'agit de la proc\u00e9dure pour les utilisateurs humains r\u00e9els, mais elle ne tient pas compte de l'une des limites mentionn\u00e9es au d\u00e9but de cet article : l'utilisation d'informations d'identification personnelles pour des t\u00e2ches automatis\u00e9es.<\/p>\n<p>C'est pourquoi nous avons introduit\u00a0<strong>comptes de service<\/strong>. La gestion des comptes de service est tr\u00e8s similaire \u00e0 ce que nous venons de d\u00e9crire. La seule diff\u00e9rence est que nous cr\u00e9ons un r\u00f4le fonctionnel pour chaque compte de service. Il existe un\u00a0<strong>relation univoque entre les comptes de service et leurs r\u00f4les<\/strong>. Nous limitons donc strictement l'\u00e9tendue des autorisations pour chaque compte de service.<\/p>\n<p>Ces \u00e9tapes ont constitu\u00e9 de grandes am\u00e9liorations. Tout \u00e9tait document\u00e9. Les \u00e9quipes ont rapidement adopt\u00e9 le nouveau cadre. Nous \u00e9tions heureux.<\/p>\n<p>Mais nous passions encore beaucoup de temps \u00e0 accorder des acc\u00e8s manuellement, et comme c'\u00e9tait tr\u00e8s manuel, c'\u00e9tait aussi une source d'erreurs. La n\u00e9cessit\u00e9 d'un outil permettant d'automatiser ces t\u00e2ches \u00e9tait \u00e9vidente.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-6 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">L'automatisation \u00e0 la rescousse<\/p><\/h2><\/div><div class=\"fusion-text fusion-text-15\" style=\"--awb-text-transform:none;\"><p>Plusieurs options s'offraient \u00e0 nous :<\/p>\n<\/div><ul style=\"--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;\" class=\"fusion-checklist fusion-checklist-6 fusion-checklist-default type-icons paddingList dark-text\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Utilisez le\u00a0<a class=\"au lc\" href=\"https:\/\/registry.terraform.io\/providers\/Snowflake-Labs\/snowflake\/latest\" target=\"_blank\" rel=\"noopener ugc nofollow\">Fournisseur Snowflake Terraform<\/a>\u00a0g\u00e9rer l'environnement<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">R\u00e9diger des scripts bash pour automatiser la cr\u00e9ation d'utilisateurs et l'octroi de permissions.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>\u00c9crire notre propre CLI dans un langage comme Python ou Go<\/p>\n<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-16\" style=\"--awb-text-transform:none;\"><p>Nous avons finalement cr\u00e9\u00e9 un CLI en Python.<\/p>\n<p>Nous pr\u00e9f\u00e9rons utiliser Terraform pour d\u00e9ployer l'infrastructure et uniquement l'infrastructure. Des comportements ind\u00e9sirables peuvent se produire lorsque vous commencez \u00e0 g\u00e9rer vos utilisateurs et vos permissions avec Terraform. Par exemple, la rotation des secrets est tr\u00e8s difficile \u00e0 g\u00e9rer.<\/p>\n<p>Nous aimons bien bash mais seulement pour des op\u00e9rations simples et ad-hoc. Ici, nous avons besoin de charger des fichiers de configuration, d'interagir avec l'API Snowflake et de manipuler des structures data. C'est possible, mais ce serait difficile \u00e0 maintenir \u00e0 long terme.<\/p>\n<p>En plus de cet aspect, nous avions besoin de fiabilit\u00e9. Une fa\u00e7on d'y parvenir est d'\u00e9crire des tests. Cela est plus facile \u00e0 faire dans les langages de programmation tels que Python.<\/p>\n<p>Lorsque vous ex\u00e9cutez l'outil, voici ce qui se passe en coulisses.<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-3 hover-type-none\"><img decoding=\"async\" width=\"282\" height=\"647\" title=\"0_qDJt0rvHAJJb0wuZ\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/0_qDJt0rvHAJJb0wuZ.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/0_qDJt0rvHAJJb0wuZ.png\" alt class=\"lazyload img-responsive wp-image-68175\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27282%27%20height%3D%27647%27%20viewBox%3D%270%200%20282%20647%27%3E%3Crect%20width%3D%27282%27%20height%3D%27647%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/0_qDJt0rvHAJJb0wuZ-200x459.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/0_qDJt0rvHAJJb0wuZ.png 282w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 282px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-17\" style=\"--awb-text-transform:none;\"><p>Par conception, l'outil ne cr\u00e9e pas un r\u00f4le qui existe d\u00e9j\u00e0. Il en va de m\u00eame pour les privil\u00e8ges. L'outil calcule le\u00a0<strong>diff\u00e9rence entre la configuration et l'environnement distant<\/strong>\u00a0et applique les changements n\u00e9cessaires. Cela nous permet d'\u00e9viter tout temps d'arr\u00eat.<\/p>\n<p>Dans un premier temps, nous avons ex\u00e9cut\u00e9 cet outil localement. Mais cela pouvait poser des probl\u00e8mes. Par exemple, nous pouvions avoir des conflits entre deux ing\u00e9nieurs qui essayaient d'apporter des modifications en m\u00eame temps. C'est pourquoi nous avons mis en place un\u00a0<strong>bas\u00e9 sur les capacit\u00e9s CI\/CD d'Azure DevOps (ADO)<\/strong>.<\/p>\n<blockquote class=\"nn no np\">\n<p>Note : nous avons utilis\u00e9 ADO mais vous pouvez faire la m\u00eame chose avec GitHub, GitLab ou Bitbucket.<\/p>\n<\/blockquote>\n<p>Voici le processus final.<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-4 hover-type-none\"><img decoding=\"async\" width=\"974\" height=\"416\" alt=\"Here is the final process of snowflakes\" title=\"flocons de neige-moyen\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/snowflakes-medium.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/snowflakes-medium.png\" class=\"lazyload img-responsive wp-image-68176\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27974%27%20height%3D%27416%27%20viewBox%3D%270%200%20974%20416%27%3E%3Crect%20width%3D%27974%27%20height%3D%27416%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/snowflakes-medium-200x85.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/snowflakes-medium-400x171.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/snowflakes-medium-600x256.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/snowflakes-medium-800x342.png 800w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2022\/10\/snowflakes-medium.png 974w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 974px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-18\" style=\"--awb-text-transform:none;\"><p>Ce flux de travail enti\u00e8rement automatis\u00e9 fonctionne tr\u00e8s bien. Les tests d\u00e9tectent les d\u00e9fauts d\u00e8s le d\u00e9but du pipeline CI. Et la r\u00e9vision obligatoire est \u00e9galement un moyen de pr\u00e9venir les incidents.<\/p>\n<p>En outre, les demandes d'extraction servent en quelque sorte de documentation pour toutes les demandes.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-7 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Conclusion<\/p><\/h2><\/div><div class=\"fusion-text fusion-text-19\" style=\"--awb-text-transform:none;\"><p>Cela fait un peu moins d'un an que nous avons commenc\u00e9 \u00e0 utiliser cette solution. Bien que la mise en \u0153uvre ait n\u00e9cessit\u00e9 un investissement initial en temps, cela en valait vraiment la peine.<\/p>\n<p>Nous passons d\u00e9sormais plus de temps \u00e0 discuter avec les utilisateurs de leurs demandes qu'\u00e0 les mettre en \u0153uvre. La plupart des demandes peuvent \u00eatre r\u00e9solues en une dizaine de lignes de YAML. C'est tr\u00e8s efficace et cela s'adapte bien. Nous continuons \u00e0 accueillir de nouveaux utilisateurs et nous pouvons faire face \u00e0 la demande. Nous avons \u00e9galement r\u00e9solu les probl\u00e8mes initiaux. C'est donc un succ\u00e8s !<\/p>\n<\/div><div class=\"fusion-text fusion-text-20\" style=\"--awb-text-transform:none;\"><article>\n<div class=\"l\">\n<div class=\"l\">\n<section>\n<div class=\"ir is it iu iv\">\n<p class=\"pw-post-body-paragraph ld le iy lf b lg lh jz li lj lk kc ll lm ln lo lp lq lr ls lt lu lv lw lx ly ir ga\" data-selectable-paragraph=\"\">Merci \u00e0 <a class=\"oc et cj\" href=\"https:\/\/medium.com\/u\/16b1369e2064?source=post_page-----44b7add1b978--------------------------------\" target=\"_blank\" rel=\"noopener\">Samy Dougui\u00a0<\/a>qui ont relu cet article et travaill\u00e9 avec moi sur la conception de cette solution<\/p>\n<\/div>\n<\/section>\n<\/div>\n<\/div>\n<\/article>\n<\/div><\/div><\/div><\/div><\/article><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-5 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-margin-top:40px;--awb-margin-bottom:40px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-center fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-4 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-flex-align-self-center\" style=\"--awb-padding-top:40px;--awb-padding-right:40px;--awb-padding-bottom:40px;--awb-padding-left:40px;--awb-overflow:hidden;--awb-bg-position:left center;--awb-bg-size:cover;--awb-border-color:rgba(10,17,40,0.1);--awb-border-style:solid;--awb-border-radius:4px 4px 4px 4px;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper lazyload fusion-column-has-shadow fusion-flex-justify-content-center fusion-content-layout-column fusion-column-has-bg-image\" data-bg-url=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/background.jpg\" data-bg=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/background.jpg\"><div class=\"fusion-image-element\" style=\"text-align:center;--awb-margin-right:20px;--awb-margin-left:20px;--awb-max-width:150px;--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-5 hover-type-none\"><img decoding=\"async\" width=\"72\" height=\"41\" title=\"moyen\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2772%27%20height%3D%2741%27%20viewBox%3D%270%200%2072%2041%27%3E%3Crect%20width%3D%2772%27%20height%3D%2741%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/medium.png\" alt class=\"lazyload img-responsive wp-image-60927\"\/><\/span><\/div><div class=\"fusion-title title fusion-title-8 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-three\" style=\"--awb-margin-top:20px;--awb-margin-bottom:0px;--awb-margin-bottom-small:8px;\"><h3 class=\"fusion-title-heading title-heading-center fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:20;line-height:1.2;\">Moyen Blog par Artefact.<\/h3><\/div><div class=\"fusion-text fusion-text-21\" style=\"--awb-content-alignment:center;\"><p>Cet article a \u00e9t\u00e9 initialement publi\u00e9 sur <strong>Medium.com<\/strong>.<br \/>\nSuivez-nous sur notre Medium Blog !<\/p>\n<\/div><div style=\"text-align:center;\"><a class=\"fusion-button button-flat button-medium button-default fusion-button-default button-1 fusion-button-default-span fusion-button-default-type\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/medium.com\/artefact-engineering-and-data-science\/snowflake-access-management-at-scale-44b7add1b978\"><span class=\"fusion-button-text awb-button__text awb-button__text--default\">Lire notre article<\/span><\/a><\/div><\/div><\/div><\/div><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>Snowflake | Comment nous avons automatis\u00e9 la gestion d'un compte de plus de 50 utilisateurs tout en respectant les normes data governance<\/p>","protected":false},"featured_media":68680,"parent":0,"template":"","meta":{"_acf_changed":false,"ep_exclude_from_search":false},"blog-category":[21939],"blog-language":[2991],"class_list":["post-68170","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog-category-medium","blog-language-en"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/blog\/68170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/types\/blog"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/media\/68680"}],"wp:attachment":[{"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/media?parent=68170"}],"wp:term":[{"taxonomy":"blog-category","embeddable":true,"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/blog-category?post=68170"},{"taxonomy":"blog-language","embeddable":true,"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/blog-language?post=68170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}