Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitHub ActionsとAWSをOIDC認証で連携する
Search
Kazuhiro Seo
April 26, 2025
Technology
1
120
GitHub ActionsとAWSをOIDC認証で連携する
GitHub ActionsとAWSをOIDC認証で連携する
Kazuhiro Seo
April 26, 2025
Tweet
Share
More Decks by Kazuhiro Seo
See All by Kazuhiro Seo
Gradleとちょっと仲良くなろう
kazuhiro1982
0
76
JavaとWebAssembly
kazuhiro1982
0
99
SpringBoot 3.0 のNative Imageを試してみた
kazuhiro1982
0
410
セッションデータの管理にSpring Sessionを利用する
kazuhiro1982
0
2.8k
AWSのLake Formation Governed Tablesを触ってみた
kazuhiro1982
0
390
VS CodeとRemote Containerで開発環境もコード管理しよう
kazuhiro1982
1
660
SpringBootをコンテナで動かしてみる
kazuhiro1982
0
400
Serverless FrameworkでWebサイトの更新を検知して通知する
kazuhiro1982
0
500
Other Decks in Technology
See All in Technology
Kiroから考える AIコーディングツールの潮流
s4yuba
3
600
オブザーバビリティプラットフォーム開発におけるオブザーバビリティとの向き合い / Hatena Engineer Seminar #34 オブザーバビリティの実現と運用編
arthur1
0
300
Claude CodeでKiroの仕様駆動開発を実現させるには...
gotalab555
3
660
地域コミュニティへの「感謝」と「恩返し」 / 20250726jawsug-tochigi
kasacchiful
0
120
【CEDEC2025】『ウマ娘 プリティーダービー』における映像制作のさらなる高品質化へ!~ 豊富な素材出力と制作フローの改善を実現するツールについて~
cygames
PRO
0
190
少人数でも回る! DevinとPlaybookで支える運用改善
ishikawa_pro
5
2.1k
AI時代の経営、Bet AI Vision #BetAIDay
layerx
PRO
1
1.4k
ecspressoの設計思想に至る道 / sekkeinight2025
fujiwara3
12
2.3k
ホリスティックテスティングの右側も大切にする 〜2つの[はか]る〜 / Holistic Testing: Right Side Matters
nihonbuson
PRO
0
400
AIに全任せしないコーディングとマネジメント思考
kikuchikakeru
0
390
Strands Agents & Bedrock AgentCoreを1分でおさらい
minorun365
PRO
6
160
OPENLOGI Company Profile for engineer
hr01
1
36k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
4 Signs Your Business is Dying
shpigford
184
22k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Embracing the Ebb and Flow
colly
86
4.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
A Tale of Four Properties
chriscoyier
160
23k
Transcript
GitHub Actions とAWS をOIDC 認証で連携する
自己紹介 妹尾一弘 株式会社カオナビ (2025.03~) サーバーサイドエンジニア Go 書いてます 副業 英単語学習アプリ: モチタン
インフラ支援 JavaDo Java 勉強会コミュニティ 運営スタッフ
CI/CD の環境 CI のお仕事はCI 環境のみでは完結しない アプリケーション環境との連携が必須 コンテナイメージをPush したり Lambda をデプロイしたり
アプリケーション環境へのアクセスには認証が必要
CI/CD の認証の課題 人の認証はRole 利用が普及したが、CI 環境 ではまだ静的なシークレットの利用が多い IAM ユーザーのアクセスキーによる管理 漏洩リスクが心配 定期的な更新が必要
管理コストが高い
OIDC 認証とは OAuth 2.0 ベースの認証の仕組み トークンで一時的に認証する メリット: シークレットの管理が不要 一時的な認証情報のみを扱う
実装方法:AWS 側の設定① 1. IAM アイデンティティプロバイダーの作成 プロバイダのタイプ: OpenID Connect プロバイダのURL: https://token.actions.githubusercontent.com
対象者: sts.amazonaws.com
② IAM ロール作成 信頼ポリシーで接続許可 必要な権限を付与 { "Version": "2012-10-17", "Statement": [{
"Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::123456789012:oidc-provider/token.actions.githubusercontent.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "token.actions.githubusercontent.com:aud": "sts.amazonaws.com" }, "StringLike": { "token.actions.githubusercontent.com:sub": "repo:your-org/your-repo:*" } } }] }
セキュリティ強化のための条件設定 条件 設定例 効果 特定ブランチのみ repo:org/repo:ref:refs/heads/main main ブランチからのみ許可 特定タグのみ repo:org/repo:ref:refs/tags/v*
v で始まるタグからのみ許可 PR のみ repo:org/repo:pull_request PR からのみ許可 特定環境のみ repo:org/repo:environment:production production 環境からのみ許可 信頼ポリシーで接続元を制限できる "StringLike": { "token.actions.githubusercontent.com:sub": "repo:org/repo:ref:refs/heads/main" }
GitHub Actions 側の設定 id-token: write 権限追加 IAM ロールを指定するだけ アクセスキー不要 ワークフロー設定のポイント
name: Deploy to AWS on: push: branches: [ main ] jobs: deploy: runs-on: ubuntu-latest permissions: id-token: write # OIDC トークン取得に必要 contents: read steps: - uses: actions/checkout@v4 - name: AWS 認証設定 uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ vars.AWS_OIDC_ROLE_ARN }} aws-region: ap-northeast-1 - name: ECR アクセステスト run: aws ecr describe-repositories
まとめ 静的な認証情報が不要になる シンプルな設定で実装可能 柔軟なアクセス制御ができる OIDC 認証を使うことで
ありがとうございました