AWS CDK で AWS-GitHub 間の OIDC を設定する

created: 2024-05-29

AWS と GitHub の OIDC を設定する

公式のユーザーガイドはIAM で OpenID Connect (OIDC) ID プロバイダーを作成するにある。

AWS-GitHub の OIDC を設定すると何ができるか

CI(GitHub Actions)による処理中で AWS の操作を行いたい時、認証/認可に使うアクセスキーが必要になり、GitHub リポジトリの Secrets として登録して使うことがある。しかし、アクセスキーはコピー可能であるから、漏洩することがある。

これに対して、OIDC を使った場合は GitHub リポジトリおよびブランチを特定して認証し、使う IAM Role を指定することで認可する。

OIDC を使うことで管理が楽になるだろうということだ。

AWS CDK で構成した

リポジトリは zfhrp6/cdk_github_oidcにある。

GitHub のリポジトリを複数管理している場合、各リポジトリでそれぞれ別の権限が欲しいことがあるので、リポジトリとロールを複数定義できるようにしている。

リポジトリには例としての定義のみ含めている、 env.ts を参照してほしい。

ConstructHub: aws-cdk-github-oidc

今回は全て自分で記述したけれど、Construct Hub に aws-cdk-github-oidc があることを知ったので、これを使った定義もしてみようと思う。