Поділіться своїми хакерськими трюками, надсилайте PR доHackTricksіHackTricks Cloudрепозиторіїв на GitHub.
SAML
Для отримання інформації про SAML, будь ласка, перевірте:
Для налаштування ідентифікаційної федерації через SAML вам потрібно лише надати ім'я та метадані XML, що містять всю конфігурацію SAML (кінцеві точки, сертифікат з відкритим ключем)
OIDC - Зловживання діями Github
Для додавання дії Github як постачальника ідентифікації:
Для Типу постачальника виберіть OpenID Connect.
Для URL постачальника введіть https://token.actions.githubusercontent.com
Натисніть на Отримати відбиток для отримання відбитка постачальника
Для Аудиторії введіть sts.amazonaws.com
Створіть нову роль з дозволами, які потрібні дії Github, та політикою довіри, яка довіряє постачальнику, наприклад:
6. Зверніть увагу, що в попередній політиці було дозволено лише **гілку** з **репозиторію** організації за допомогою конкретного **тригера**.
7. **ARN** **ролі**, яку дія Github зможе **імітувати**, буде "секретом", який потрібно знати дії Github, тому **зберігайте** його в межах **секрету** всередині **середовища**.
8. Нарешті, використовуйте дію Github для налаштування облікових даних AWS, які будуть використовуватися в робочому процесі:
```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
# Crate an EKS cluster (~10min)eksctlcreatecluster--namedemo--fargate
# Create an Identity Provider for an EKS clustereksctlutilsassociate-iam-oidc-provider--clusterTesting--approve
Можливо створити постачальників OIDC в кластері EKS, просто встановивши URL OIDC кластера як новий постачальник ідентифікації Open ID. Це загальна політика за замовчуванням:
Ця політика правильно вказує, що тільки кластер EKS з ідентифікатором20C159CDF6F2349B68846BEC03BE031B може припускати роль. Однак вона не вказує, який обліковий запис служби може це зробити, що означає, що БУДЬ-ЯКИЙ обліковий запис служби з токеном веб-ідентифікатора зможе припускати роль.
Для того, щоб вказати, який обліковий запис служби повинен мати можливість припускати роль, потрібно вказати умову, де вказано ім'я облікового запису служби, наприклад: