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

# Example automatically generated from non-compiling source. May contain errors.
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():

# Example automatically generated from non-compiling source. May contain errors.
// 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.39.tar.gz (29.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pahud_cdk_github_oidc-0.0.39-py3-none-any.whl (28.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pahud-cdk-github-oidc-0.0.39.tar.gz
  • Upload date:
  • Size: 29.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.3

File hashes

Hashes for pahud-cdk-github-oidc-0.0.39.tar.gz
Algorithm Hash digest
SHA256 5722f27f1b5174402863c063b872a5d25f584d7b36abc32cfd61d671bc41039f
MD5 dfc306a0d3d6cea5a7aa56eae3f3184b
BLAKE2b-256 aa5eec21486b89307bcd96083faf5d37757c0c3ca588999b3b9aeea2a5d75a4a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pahud_cdk_github_oidc-0.0.39-py3-none-any.whl
  • Upload date:
  • Size: 28.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.3

File hashes

Hashes for pahud_cdk_github_oidc-0.0.39-py3-none-any.whl
Algorithm Hash digest
SHA256 f31e0db7e0f4db0074679bcae798ed2006f6a357ce9ef76c74cfde2fcbbac8c6
MD5 d20ac7d95d57bfc3360771eea1695348
BLAKE2b-256 ac2ea88acb01b0d166251121a7c4e5257da9fe2988432cadfdaa4edb2567d232

See more details on using hashes here.

Supported by

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