Skip to main content

CDK construct library for Github OpenID Connect Identity Provider

Project description

npm version PyPI version release

cdk-constructs: Experimental

cdk-github-oidc

Inspired by aripalo/aws-cdk-github-oidc, this construct library allows you to create a Github OpenID Connect Identity Provider trust relationship with the Provider construct as well as federated IAM roles for one or multiple Github repositories.

This construct is still in experimental stage and may have breaking changes. However, we aim to make this library as simple as possible.

Sample

import { Provider } from '@pahud/cdk-github-oidc';

// create a new provider
const provider = new Provider(stack, 'GithubOpenIdConnectProvider')
// create an IAM role from this provider
provider.createRole('demo-role',
  // sharing this role across multiple repositories
  [
    { owner: 'octo-org', repo: 'first-repo' },
    { owner: 'octo-org', repo: 'second-repo' },
    { owner: 'octo-org', repo: 'third-repo' },
  ]
)

Import the provider

Each AWS account can only have one GitHub OIDC identity provider. To import the existing one, use Provider.fromAccount():

// import the provider
const provider = Provider.fromAccount(stack, 'GithubOpenIdConnectProvider')
// create a iam role from the imported provider
provider.createRole(...)

Workflow sample

name: demo
on:
  workflow_dispatch: {}
jobs:
  deploy:
    name: Upload to Amazon S3
    runs-on: ubuntu-latest
    env:
      AWS_REGION: us-east-1
    permissions:
      id-token: write # needed to interact with GitHub's OIDC Token endpoint.
      contents: read
    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Configure AWS credentials
      uses: aws-actions/configure-aws-credentials@master
      with:
        role-to-assume: ${{ secrets.AWS_ROLE_ARN_TO_ASSUME }}
        aws-region: ${{ env.AWS_REGION }}

    - name: Sync files to S3
      run: |
        aws s3 sync ./ s3://${{ secrets.AWS_BUCKET }}

Projects using this library

Reference

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pahud-cdk-github-oidc-0.0.387.tar.gz (36.3 kB view details)

Uploaded Source

Built Distribution

pahud_cdk_github_oidc-0.0.387-py3-none-any.whl (34.7 kB view details)

Uploaded Python 3

File details

Details for the file pahud-cdk-github-oidc-0.0.387.tar.gz.

File metadata

File hashes

Hashes for pahud-cdk-github-oidc-0.0.387.tar.gz
Algorithm Hash digest
SHA256 0667036a51d1c5242090ce9fab88ccdb62cdcc41896f65bc03d8da174387f11c
MD5 3299caaea48041d2ee19ba2bfbbb5076
BLAKE2b-256 4098daeab18afc22b956f4bb7b0e9035b404899c10d7f55702b76257f88c808f

See more details on using hashes here.

File details

Details for the file pahud_cdk_github_oidc-0.0.387-py3-none-any.whl.

File metadata

File hashes

Hashes for pahud_cdk_github_oidc-0.0.387-py3-none-any.whl
Algorithm Hash digest
SHA256 0ff7a3881cfb0eb747658b0cc119dc63df40beb44d038613b66cf82fe9d070ba
MD5 0cc5d9e7e4bfb6a5f23ffb4c170ed88d
BLAKE2b-256 7a5e550957bf7fadd44ba18e03fce521172894fcb0904810193abd4bde5fe0ab

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page