Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub ActionsとAWSをOIDC認証で連携する

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

GitHub ActionsとAWSをOIDC認証で連携する

GitHub ActionsとAWSをOIDC認証で連携する

Avatar for Kazuhiro Seo

Kazuhiro Seo

April 26, 2025
Tweet

More Decks by Kazuhiro Seo

Other Decks in Technology

Transcript

  1. ② 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:*" } } }] }
  2. セキュリティ強化のための条件設定 条件 設定例 効果 特定ブランチのみ 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" }
  3. 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