AWS - Federation Abuse
SAML
Pour des informations sur SAML, veuillez consulter :
Pour configurer une Fédération d'Identité via SAML, vous devez simplement fournir un nom et le XML de métadonnées contenant toute la configuration SAML (points de terminaison, certificat avec clé publique)
OIDC - Abus des Actions Github
Pour ajouter une action github en tant que fournisseur d'identité :
Pour Type de fournisseur, sélectionnez OpenID Connect.
Pour URL du fournisseur, entrez
https://token.actions.githubusercontent.com
Cliquez sur Obtenir l'empreinte pour obtenir l'empreinte du fournisseur
Pour Audience, entrez
sts.amazonaws.com
Créez un nouveau rôle avec les permissions dont l'action github a besoin et une politique de confiance qui fait confiance au fournisseur comme :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::0123456789:oidc-provider/token.actions.githubusercontent.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "token.actions.githubusercontent.com:sub": [ "repo:ORG_OR_USER_NAME/REPOSITORY:pull_request", "repo:ORG_OR_USER_NAME/REPOSITORY:ref:refs/heads/main" ], "token.actions.githubusercontent.com:aud": "sts.amazonaws.com" } } } ] }
Abus OIDC - EKS
Il est possible de générer des OIDC providers dans un cluster EKS simplement en définissant l'OIDC URL du cluster comme un nouveau fournisseur d'identité Open ID. Voici une politique par défaut courante :
Cette politique indique correctement que seulement le cluster EKS avec l'identifiant 20C159CDF6F2349B68846BEC03BE031B
peut endosser le rôle. Cependant, elle ne précise pas quel compte de service peut l'endosser, ce qui signifie que n'importe quel compte de service avec un jeton d'identité web sera capable d'endosser le rôle.
Afin de spécifier quel compte de service devrait être capable d'endosser le rôle, il est nécessaire de spécifier une condition où le nom du compte de service est indiqué, tel que :
```bash "oidc.eks.region-code.amazonaws.com/id/20C159CDF6F2349B68846BEC03BE031B:sub": "system:serviceaccount:default:my-service-account", ``` ## Références
Dernière mise à jour