【AWS】【Terraform】OIDCを作成してGitHubActionsからAWSへアクセスできるようにする

AWS IAM

 

GitHub ActionsでAWSへアクセスする際に認証をどう突破するかが重要です。

GitHub の Actions secrets and variables からAWSの認証情報を読み込む方法もありますが、

機密情報を持たせておくのはセキュリティ的にはよろしくない

 

そこで、AWSでOIDCを作成し、使用することを考えます。

 

今回は「terraform_test」という名前のGitリポジトリを使用し、
OIDCはTerraformを使用して作成します。

 

便宜上 GitHub Actionsを使用したいリポジトリ内にTerraformのファイルを作成していますが、その必要はない点にご注意ください

 

OIDC(OpenID Connect)を作成

 

こちらを参考に main.tf および iam.tfを作成します

(ディレクトリ)

terraform_test
├── .gitignore
├── README.md
├── iam.tf    // 作成
└── main.tf   // 作成

(main.tf)

 

(iam.tf)

 

上記をterraform applyしてIDプロバイダを作成します

 

AWSコンソールでも作成が確認できました

 

いったんここまでの内容をmainブランチにcommit、pushしておきます

 

GitHub Actions でAWSにアクセスできるかテスト

 

terraform_testリポジトリからAWSにアクセスできるかテストしてみます!

 

mainブランチからテスト用のtestブランチをきります

 

GitHub Actionsのワークフローを定義するため
.github/workflows/aws_access_test.yml を作成します

 

.github/workflows/ 配下のYAMLファイル
ワークフローを定義することでGitHub Actionsを使用できます

 

(ディレクトリ)

terraform_test
├── .github
│ └── workflows
│  └── aws_access_test.yml  // 作成
├── .gitignore
├── README.md
├── iam.tf
└── main.tf

 

こちらを参考にaws_access_test.ymlに記述していきます

 

testブランチにpushした際に

aws sts get-caller-identity

が実行されるワークフローが定義できました!

 

このワークフローでGitHub ActionsからAWSにアクセスできるかpushして確認します

 

GitHub > リポジトリ > Actions から結果を確認できます

 

無事成功していますね!

 

参考

 

GitHub ActionsでTerraformの実行を自動化する
【GitHub Actions】TerraformでデプロイするCI/CDパイプラインの構築手順
GitHub でソースコードを管理しているとして、複数人で Terraform を利用する場合、それぞれが terraform plan、terraform apply コマンドを実行することになります。   今回は GitHub
RURUK BLOG
主にIT関連の記事を掲載しています。記事のほかには、各人気Webサイトから最新情報を取得するスクレイピングツール【RURUK Trend Checker】や検索順位チェックツール【検索順位チェッカー RURUK】なども公開しています。著者:ITエンジニア

コメント

タイトルとURLをコピーしました