Transition to cloud-supported JWT Token (V2)
### Update We've decided to go for a different approach and allow users to opt-in for the new token, it will be the recommended way (and the only way by 16.0) to authenticate with Vault and other cloud providers, however it will require a configuration change, more information in https://gitlab.com/gitlab-org/gitlab/-/issues/356986+ <h3> Background: </h3> The current CI_JOB_JWT implementation is limited to Vault. @bdowney and contributors have drafted an [MR for CI_JOB_JWT_V2](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/72555) which adds OIDC support for AWS and other cloud providers. This allows customers to use temporary credentials from cloud providers without storing secrets in their GitLab projects. <h3> Scope of Epic </h3> This scope of this epic is to capture the next steps for communicating to customers adopting the new CI_JOB_JWT with existing and new providers. Communication includes notifying customer success for feedback, documentation, deprecation notice, and public blog post. . 14.6: - [x] Initial [release of CI_JOB_JWT_V2](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/72555) as [**Alpha**](https://about.gitlab.com/handbook/product/gitlab-the-product/#alpha) - [x] Socialize issue to #customer-success in slack for feedback. - @jrandazzo 14.6 - 14.8: - [x] Gather feedback from customers - https://gitlab.com/gitlab-org/gitlab/-/issues/346737 - Customer Success - [x] POC of native [CI secrets integration](https://docs.gitlab.com/ee/ci/secrets/) - @jrandazzo - [ ] Notify customers @nagyv-gitlab - [ ] Documentation with examples - @jrandazzo - [x] Overview (https://gitlab.com/gitlab-org/gitlab/-/merge_requests/77125) - [x] AWS (https://gitlab.com/gitlab-org/gitlab/-/merge_requests/77127) - [ ] Hashicorp (Update format) - [ ] Google - [ ] Azure - [ ] VMWare 15.2 - [ ] https://gitlab.com/gitlab-org/gitlab/-/issues/356986+ 15.3 - [ ] https://gitlab.com/gitlab-org/gitlab/-/issues/360657+ 15.x - [ ] Document examples for JWT integration with cloud providers 16.0 - [ ] https://gitlab.com/gitlab-org/gitlab/-/issues/366798+ <details><summary>Old implementation plan</summary> **Changes** <p> Current Implementation: <details> <pre><code>{ "jti": "c82eeb0c-5c6f-4a33-abf5-4c474b92b558", "iss": "gitlab.example.com", "iat": 1585710286, "nbf": 1585798372, "exp": 1585713886, "sub": "job_1212", "namespace_id": "1", "namespace_path": "mygroup", "project_id": "22", "project_path": "mygroup/myproject", "user_id": "42", "user_login": "myuser", "user_email": "myuser@example.com", "pipeline_id": "1212", "pipeline_source": "web", "job_id": "1212", "ref": "auto-deploy-2020-04-01", "ref_type": "branch", "ref_protected": "true", "environment": "production", "environment_protected": "true" } </code></pre> </details> New (Breaking) implementation: <details> <pre><code>{ "namespace_id": "1", "namespace_path": "root", "project_id": "20", "project_path": "root/aws-jwt-auth", "user_id": "1", "user_login": "root", "user_email": "admin@example.com", "pipeline_id": "190", "pipeline_source": "push", "job_id": "546", "ref": "main", "ref_type": "branch", "ref_protected": "true", "environment": "prod", "environment_protected": "false", "jti": "c0adeb51-bf1d-4840-81dd-57c58564c109", "iss": "https://3000-green-wolverine-of056ezd.ws-us17.gitpod.io", "iat": 1638209391, "nbf": 1638209386, "exp": 1638212991, "sub": "project_path:root/aws-jwt-auth:ref_type:branch:ref:main", "aud": "https://3000-green-wolverine-of056ezd.ws-us17.gitpod.io" } </code></pre> </details> Diff <details> <pre><code>Changed: By appending "https://" to support cloud providers "iss": "https://3000-green-wolverine-of056ezd.ws-us17.gitpod.io", <br> Changed (job id to group/project path): To support filtering with IAM policies "sub": "project_path:root/aws-jwt-auth:ref_type:branch:ref:main", <br> Added: Required by OIDC for handshake "aud": "https://3000-green-wolverine-of056ezd.ws-us17.gitpod.io" </code></pre> </details> </p> </details>
epic