2
1

GitHubActionsからCloudFormationを実行する

Posted at

はじめに

今回はS3をCloudFormationとGithubActionsを使って、構築していきたいと思います。
GitHubActionsとAWSの連携からS3作成までやっていきたいと思います。

目次

1.AWSとGitHubActionsの連携
2.S3の構築
3.最後に
4.参考

1.AWSとGithubActionsの連携

AWSとGitHubActionsの連携はOpenID Connectを使用します。
前提として、GitHubのリポジトリ、AWSアカウントは作成済みとします

1-1.AWSにてIDプロバイダの追加

AWSのマネジメントコンソールからIAMロール>IDプロバイダ>プロバイダを追加へと進みます。
プロバイダ設定にて下記設定を入力し、プロバイダを追加をクリックし登録します。

項目 入力内容
プロバイダのタイプ OpenID Connect
プロバイダのURL https://token.actions.githubusercontent.com
対象者 sts.amazonaws.com

image.png

1-2.GithubActions用IAMロールの作成

次にGithubActions用のIAMロールの作成をします。
信頼されたエンティティを選択にて、下記設定を選択または入力し、次へをクリックします。

項目 入力内容
信頼されたエンティティタイプ ウェブアイデンティティ
アイデンティティプロバイダー token.actions.githubusercontent.com
Audience sts.amazonaws.com
GitHub組織 自身のGitHubアカウント名を記載
GitHubリポジトリ -オプション 必要に応じて記載
GitHubブランチ -オプション 必要に応じて記載

image.png

任意の許可ポリシーを追加します。
今回はテストのためAdministratorAccessを選択します。
image.png

ロール名を入力し、ロールを作成します。
image.png

以上で、AWSとGitHubActionsの連携は完了です。

2.S3の構築

GitHubActionsからCloudFormationを実行していきます。
実行するS3構築用のCloudFormationは下記サイトを参照してください。

2-1.GitHubActions実行ファイルの作成

リポジトリのroot配下に .github/workflows ディレクトリを作成し、Deploy-S3.yamlファイルを作成します。
今回のワークフローは自動実行ではなく、手動実行とします。
{}で囲っている箇所については適宜変更してください。

Deploy-s3.yaml
name: S3デプロイ

on: workflow_dispatch

permissions:
  id-token: write
  contents: read
jobs:
  aws-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: aws-actions/configure-aws-credentials@v1-node16
        with:
          role-to-assume: arn:aws:iam::{AwsAccountId}:role/{IAMRole}
          aws-region: ap-northeast-1
      #S3作成
      - name: AWS Cloudformation Development S3
        run: aws cloudformation deploy --stack-name Deployment-S3 --template-file s3.yaml
        working-directory: ./infra

2-2.GitHubActionsの実行

GitHubのWeb画面にてActions画面に遷移します。
S3デプロイを選択し、画面右のRun workflowのプルダウンボタンからRun workflowをクリックします。

image.png

暫く待つと、実行中のworkfowが表示されるのでそれをクリックし、Job画面に遷移します。
image.png

下記の画面のように正常に完了したら、マネジメントコンソールからS3が作られたことを確認してください。
image.png

以上で、S3の構築は完了です。

3.最後に

こちらでGithubActionsを使って、CloudFormationを実行する手順は完了です。
参考になれば、幸いです。

4.参考サイト

OpenID Connect

AWS CLI

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1