Authentifizieren Sie Terraform mit Okta

Authentifizieren Sie Terraform mit Okta

Das Unternehmen, für das ich arbeite, verwendet für AWS einen Legacy-Login von Okta. Um die AWS-CLI zu verwenden, wird daher das Dienstprogramm „aws-okta“ benötigt, das Okta MFA erfordert, bevor ein AWS-CLI-Befehl ausgeführt wird.

Ich schreibe die Infrastruktur in Terraform und habe noch nicht herausgefunden, wie ich Terraform dazu bringe, Okta zu verwenden, um AWS-Komponenten erstellen zu können.

Ist das möglich?

Außerdem muss dies dann in einer CI/CD-Pipeline ausgeführt werden, und ich bin mir nicht sicher, wie es dort wegen der MFA funktionieren würde. Können Sie mir irgendwelche Vorschläge machen?

Antwort1

Ja, es gibt einige Ansätze für Okta. Okta macht SSO/föderierte Identität wirklich einfach, über AWS, SaaS-Tools von Drittanbietern und Legacy-Tools mit LDAP-Authentifizierung usw. hinweg und bietet umfangreiche Protokolle/Audit-Trails.

https://github.com/oktadeveloper/okta-aws-cli-assume-role
https://github.com/segmentio/aws-okta
https://bitbucket.org/atlassian/cloudtoken/src/master/
https://github.com/Nike-Inc/gimme-aws-creds

Wir verwenden gimme-aws-creds für etwa 30 AWS-Konten. Wir verwenden den Docker-Container-Ansatz sowohl auf Mac als auch auf PC in unserem DevOps-Team und unseren Entwicklungsteams. Damit kann der Benutzer eine Rolle in einem bestimmten AWS-Konto übernehmen und Sie können Terraform auf Ihrem PC ausführen. Sie können die Funktion „Rollenübernahme“ auch im Terraform AWS-Anbieter verwenden.
https://www.terraform.io/docs/providers/aws/index.html

Aus CI/CD-Sicht brauchen Sie Okta nicht und Sie brauchen kein MFA. Der Jenkins EC2-Server oder ein gleichwertiger Server verfügt über eine Instanzrolle, um andere Rollen im selben Konto oder in anderen Konten zu übernehmen. Terraform verwendet diese übernommene Rolle. Wir verwenden Okta, um unseren Jenkins-Server zu sichern (LDAP-Authentifizierung).

verwandte Informationen