Um eine Identitätsföderation über SAML zu konfigurieren, müssen Sie lediglich einen Namen und das Metadaten-XML bereitstellen, das alle SAML-Konfigurationen enthält (Endpunkte, Zertifikat mit öffentlichem Schlüssel)
OIDC - Github Actions Missbrauch
Um eine Github-Action als Identitätsanbieter hinzuzufügen:
Wählen Sie für AnbietertypOpenID Connect aus.
Geben Sie für Anbieter-URLhttps://token.actions.githubusercontent.com ein.
Klicken Sie auf Daumenabdruck abrufen, um den Daumenabdruck des Anbieters zu erhalten.
Geben Sie für Zielgruppests.amazonaws.com ein.
Erstellen Sie eine neue Rolle mit den Berechtigungen, die die Github-Action benötigt, und einer Vertrauensrichtlinie, die dem Anbieter vertraut, z. B.:
6. Beachten Sie in der vorherigen Richtlinie, wie nur ein **Zweig** aus einem **Repository** einer **Organisation** mit einem spezifischen **Auslöser** autorisiert wurde.
7. Die **ARN** der **Rolle**, die die Github-Action **imitieren** kann, ist das "Geheimnis", das die Github-Action kennen muss, also **speichern** Sie es in einem **Geheimnis** innerhalb einer **Umgebung**.
8. Verwenden Sie schließlich eine Github-Action, um die AWS-Anmeldeinformationen zu konfigurieren, die im Workflow verwendet werden sollen:
```yaml
name: 'test AWS Access'
# The workflow should only trigger on pull requests to the main branch
on:
pull_request:
branches:
- main
# Required to get the ID Token that will be used for OIDC
permissions:
id-token: write
contents: read # needed for private repos to checkout
jobs:
aws:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-region: eu-west-1
role-to-assume: ${{ secrets.READ_ROLE }}
role-session-name: OIDCSession
- run: aws sts get-caller-identity
shell: bash
OIDC - EKS Missbrauch
# Crate an EKS cluster (~10min)eksctlcreatecluster--namedemo--fargate
# Create an Identity Provider for an EKS clustereksctlutilsassociate-iam-oidc-provider--clusterTesting--approve
Es ist möglich, OIDC-Anbieter in einem EKS-Cluster zu generieren, indem einfach die OIDC-URL des Clusters als neuen OpenID-Identitätsanbieter festgelegt wird. Dies ist eine häufige Standardrichtlinie:
Diese Richtlinie gibt korrekt an, dass nur das EKS-Cluster mit der ID20C159CDF6F2349B68846BEC03BE031B die Rolle übernehmen kann. Es wird jedoch nicht angegeben, welcher Dienstkontoname dies übernehmen kann, was bedeutet, dass JEDES Dienstkonto mit einem Web-Identitätstoken die Rolle übernehmen kann.
Um anzugeben, welches Dienstkonto die Rolle übernehmen darf, muss eine Bedingung angegeben werden, in der der Dienstkontoname angegeben ist, wie zum Beispiel: