Archives mensuelles : décembre 2016

ADFS 4.0 – subtilité de la page de logon

Pour finir l’année en beauté, j’ai un ADFS 4.0 à me mettre sous la dent. Une simple évolution du 3.0 inclus dans Windows Server 2012 R2 que je me suis dit. ADFS, je le connais depuis la version 1.1. Ça fait longtemps qu’on se côtoie. Jusqu’à maintenant, dans sa mise en œuvre, j’avais toujours pris l’habitude d’inclure une étape de validation après l’installation du premier serveur ADFS de la ferme, histoire de bien démontrer que ça fonctionne avant de continuer. Là j’ai eu une surprise :

clip_image001

Derrière, dans les logs, j’ai trouvé ça :

clip_image002

Intéressant. C’est en creusant le sujet en passant sous la moquette que j’ai découvert la présence du paramètre EnableIdPInitiatedSignonPage dans les propriétés du Get-AdfsProperties.

clip_image003

Par défaut, la page de la mire de logon est désactivée. C’est con mais quand on veut tester que son infrastructure fonctionne, on commence par le plus basique : La page de logon. Une fois réactivée, cela fonctionne tout de suite mieux.

 

Benoits – Simple and secure by design but Business compliant (with disruptive flag enabled)

Migration CSP : Notes from the Field

Voilà un sujet qui m’occupe beaucoup en ce moment, migrer des clients vers des souscriptions Azure CSP. Je reviendrais bientôt sur le processus et les pièges à éviter mais tout de suite, je voulais partager un détail post-migration, quand on pense avoir fait le plus dur, on peut encore avoir des problèmes.

En préparant la migration de mon client, j’avais identifié un composant non éligible à la migration : SendGrid. C’est un composant d’un partenaire qui permet d’envoyer des mails. Le client l’utilise dans son application. Dans sa souscription « Pay As You Go », le client est bien capable de souscrire à ce service :

clip_image001

Coté CSP. Pour que ce composant puisse être utilisé, il faut un Resource Provider. Ça tombe bien, il est bien disponible dans CSP, il fallait juste l’activer.

clip_image002

Le problème, c’est que même si le portail Azure propose la ressource et que le Resource Provider est bien enregistré, cela ne veut pas dire que la dite ressource est réellement disponible dans une souscription CSP.

clip_image003

Le portail Azure nous indique clairement que ce type de ressource n’est pas disponible dans une souscription CSP, alors que la même ressource est tout à fait disponible dans la même région Azure dans une souscription « Pay as You Go ».

Conclusion, méfiez-vous des ressources qu’on ne peut pas migrer avec CSP, elles peuvent réserver des surprises. Incident ouvert auprès de Microsoft, …

­

Benoits – Simple and secure by design but Business compliant (with disruptive flag enabled)

Mais qui est le Dédé qui a fumé 3k dans ma souscription Azure?

OK, le titre est racoleur mais, c’est comme cela que le problème m’a été présenté par un ancien collègue ce vendredi soir. Il se reconnaîtra :). Recherche désespérément quel Dédé a fumé le crédit de ma souscription Azure. Le billing et le contrôle budgétaire sont bien souvent les dernières roues d’un projet de transformation numérique. Pourtant, le DAF a son mot à dire dans le domaine. Quand on leur vante les promesses du Cloud, on leur vante la capacité à maîtriser ses couts. Ça se complique quand sa réponse est OK, montrez-moi avec un cas concret : Retrouvez-moi à qui affecter une dépense inconsidérée sur ma facturation et comment m’en prémunir, … La autant vous dire que développer un argumentaire uniquement basé sur la calculatrice Azure est voué à l’échec.

Pour répondre à la question de mon ex-collègue (et celle d’un DAF), c’est possible. Toute plateforme cloud qui se respecte doit être en mesure de produire des métriques précises de l’usage de ses différents services afin de pouvoir facturer l’usage des services consommés. Autant vous dire tout de suite que ce n’est pas la partie la plus sexy d’Azure mais à moins que vous ne vouliez avoir un auditeur vous demander de justifier vos dépenses en crédit Azure, … A vous de voir.

Ce qui nous intéresse, ce ne sont pas réellement les métriques de services consommés. Première question : Est-ce la consommation d’un service produit par Microsoft ou par l’un de ses partenaires ? La question a son importance. Si c’est de la consommation de services Azure Microsoft, on va rechercher de la consommation excessive. Dans ce cas, c’est le billet Découverte d’Azure Resource Policy qui vous aidera à éviter que cela ne se reproduise. Par contre, si c’est un service externe, on trouvera la solution dans le portail à la rubrique « External Services » de la souscription. Dans l’illustration ci-dessous quelques expériences passées sur une de mes souscriptions :

clip_image001

 

J’ai été joueur en tentant de provisionner une appliance virtuelle F5 Big-IP. Heureusement pour moi, j’avais annulé l’opération rapidement. Même si j’ai rapidement supprimé la ressource, on a quand même la trace de l’acte d’achat. Dans mon cas, si on n’a pas le groupe de ressources on a au moins la date d’achat. C’est tout ce dont nous avons besoin pour commencer notre enquête.

clip_image002

 

La plupart du temps on ne se rend pas compte, mais la différence on la voit au moment du déploiement dans le portail avec un onglet « Buy » comme illustré ci-dessous :

clip_image003

 

Dans l’illustration ci-dessus, on a même le cas de la « Double Peine » avec la ressource F5 BIG-IP. On paie pour le compute mais aussi pour la licence payée à F5 passé les trente jours de découverte. BYOL, c’est Bring Your Own License. C’est là que le comportement diffère selon le type de votre souscription. Dans mon cas, il m’est clairement que mon crédit Azure ne peut être utilisé pour acquérir ce type de produit (BYOL). Même s’il me coute 0€ (pour l’instant), c’est un service externe. Ce comportement est lié à ma souscription. Sur une souscription de type Enterprise Agreement, c’est une décision que le propriétaire du contrat va prendre et configurer dans son portail.

 

Note : Il arrive de temps en temps que même des produits Microsoft soient considérés comme du « External services ». Non, ce n’est pas une blague.

 

Maintenant que les présentations sont faites, voyons comment traquer le coupable, même s’il a tenté de cacher son méfait en supprimant le groupe de ressources la semaine dernière. Ce qui est bien avec le Cloud, c’est que pour être facturable tout service est nécessairement mesurable, il faut juste savoir quelle opération rechercher dans les Aure Logs. Dans le cas qui m’occupe, c’est de trouver qui a bien pu provisionner ce F5. Dans qu’on parle de log Azure, c’est le module PowerShell « AzureRm.Insights » qui va nous intéresser :

clip_image004

 

Immédiatement, on localise une commande Get-AzureRMLog. Elle va tout nous dire. On va être sélectif et lui demander uniquement les actes d’achat sur le MarketPlace :

Get-AzureRMLog | Where {$_.OperationName -eq »Microsoft.Resources/marketplace/purchase/action »}

clip_image005

 

D’où sort mon filtre ? Facile, lors de l’étape de validation d’un déploiement dans Azure, on a la possibilité de consulter le template ARM. J’ai donc demandé le déploiement de services externes. On a deux lignes. La première indiquant clairement l’acceptation du déploiement. Bonne nouvelle, on connait maintenant le nom du Dédé qui a fumé nos 3K€. Quand on lui a dit acheter, il a cliqué sur le bouton « OK » sans même lire les recommandations. La seconde, c’est que le déploiement a été autorisé, que le crédit Azure a pu être utilisé ou que sa Carte de crédit est toujours valide, …

On a les actes d’achat. Ce qui nous manque, c’est de retrouver ce qui a été déployé avec. Après tout, il peut avoir commandé le déploiement d’une ressource de type ClearDB. Ce que je recherche, c’est l’acte d’achat pour du F5 Big-IP. A partir de cette entrée de l’Azure Log, on va rechercher toutes les autres entrées qui y sont liées. On va donc jouer un peu avec PowerShell :

$Logs = Get-AzureRmLogs

$Logs | Where {$_OperationName -eq « Microsoft.Resources.MarketPlace/Action »}

clip_image006

 

Ce qui va m’intéresser maintenant, c’est de retrouver l’opération « Microsoft.Resources/deployments/write » qui va avec cet acte. Pour cela, on va utiliser le CorrelationID pour faire le lien.

$CorrelationID = ($Logs | select -first 1).CorrelationId

$CorrelationID

$Logs | Where {$_.CorrelationID -eq $CorrelationID} | Where {$_.OperationName -eq « Microsoft.Resources/deployments/write »}

clip_image007

 

Ca y est, on a trouvé le coupable, on va pouvoir le présenter au bourreau (auditeur) au lieu de monter nous-même sur l’échafaud en tant que coupable par négligence. Là nous ne parlons que de 3k€. Imaginez que demain, on recherche qu’elle est la buse intergalactique qui a provisionné un truc bien plus gros. Disons un SAP HANNA déployé sur des instances de machines virtuelle de type G5.

Maintenant, les mauvaises nouvelles. La capacité à exporter les logs d’Azure est limitée. Dans le portail, on peut extraire l’activité des 90 derniers jours alors qu’en PowerShell on est limité à 15. Ceci amène deux recommandations :

Pour finir, quelques conseils pour vous éviter de passer vos journées en face d’un auditeur financier (ce ne sont pas les personnes les plus drôles). Dans une souscription de type Enterprise Agreement, vous avez des rapports de suivi de consommation, utilisez-les au lieu d’attendre que la prochaine facture n’arrive. S’il y a un pic e consommation, il doit être lié à un projet (Idéalement les ressources sont mêmes taguées).

clip_image008

 

Toujours dans une souscription Enterprise Agreement, vous avez la possibilité de faire parler ces données via Power BI, ne nous en privez pas. L’auditeur sera ravi qu’on mettre à sa disposition de type d’outil.

clip_image009

 

Pour finir. Faire du Cloud, ce n’est pas uniquement s’adresser aux IT-Pro, Dev ou aux métiers en vantant les possibilités infinies de la plateforme. En face de vous, il y a deux acteurs qui vous attendent au tournant :

  • Le contrôle de gestion : Vous avez promis une maîtrise des coûts, prouvez-le sinon ils vont atomiser notre nouvelle agilité avec une quantité de processus contrôles sans fin
  • Le RSSI : Vous avez promis un meilleur contrôle de la sécurité. Lui sa préoccupation actuelle c’est le RGPD et comment vous-vous allez-vous y conformer ASAP.

Tu fais du cloud sans impliquer le contrôle de gestion ? Mais allo quoi?

Benoits – Simple and secure by design but Business compliant (with disruptive flag enabled)