OpenTacoで複数のAWSアカウントにリソースをデプロイする方法をまとめてみた

OpenTacoで複数のAWSアカウントにリソースをデプロイする方法をまとめてみた

2026.02.25

OpenTacoで複数のAWSアカウントにリソースをデプロイする方法をまとめました。

大きく以下の3つの方法があります。

  • digger.ymlでIAMロールを指定する
  • AWSプロファイルでIAMロールを切り替える
  • AWSアカウント毎にGitHub Actionsワークフローファイルを作成する

https://docs.opentaco.dev/ce/howto/multiacc-aws
https://docs.opentaco.dev/ce/howto/project-level-roles

比較

観点 digger.yml AWSプロファイル ワークフロー分割
セットアップの手軽さ シンプル Jumpアカウントの構築が必要 シンプル
AWSアカウント構成 各アカウントにOIDCロール Jumpアカウント + 各アカウントにAssumeRole用ロール 各アカウントにOIDCロール
アカウント追加時の変更箇所 digger.yml .aws/config + digger.yml ワークフローファイル + digger.yml
IAMロールの管理場所 digger.yml .aws/config ワークフローファイル
ワークフローファイル数 1つ 1つ アカウント数分

使い分けの目安

  • 手軽に始めたい場合は、digger.ymlでのIAMロール指定がおすすめです。設定がdigger.ymlに集約されるため管理もシンプルです
  • Jumpアカウントを経由するアカウント構成が既にある場合は、AWSプロファイルを利用する方法が既存の構成を活かせます
  • アカウント毎にワークフローの権限や実行環境を完全に分離したい場合は、ワークフロー分割が適しています

方法1: digger.ymlでIAMロール指定

digger.ymlaws_role_to_assumeフィールドで、プロジェクト毎に引き受けるIAMロールを指定する方法です。

各AWSアカウントにGitHub Actions OIDC用のIAMロールを作成し、digger.ymlでプロジェクトとIAMロールを紐づけます。

ワークフローファイルではIAMロールを指定する必要がなく、setup-aws: falseで運用できます。

詳細は以下の記事で解説しています。

https://dev.classmethod.jp/articles/opentaco-aws-multi-account-deploy-digger-yml/

方法2: AWSプロファイルでIAMロール切替

.aws/configにAWSプロファイルを定義し、Jumpアカウント経由で各環境アカウントのIAMロールを引き受ける方法です。

Jumpアカウントに対してGitHub Actions OIDCで認証し、そこから各環境アカウントへAssumeRoleする構成になります。

ワークフローファイルにはJumpアカウントのIAMロールのみを設定するため、アカウントが増えてもワークフローファイルの変更は不要です。

詳細は以下の記事で解説しています。

https://dev.classmethod.jp/articles/opentaco-aws-multi-account-aws-profile/

方法3: AWSアカウント毎にGitHub Actionsワークフローファイルを作成する

AWSアカウント毎にGitHub Actionsワークフローファイルを作成し、各ワークフローでOIDC認証を行う方法です。

ワークフローファイルが完全に分離されるため、アカウント毎に異なるランナーや権限設定を柔軟に構成できます。

一方、アカウント数が増えるとワークフローファイルも増えるため、管理コストが高くなる点には注意が必要です。

詳細は以下の公式ドキュメントをご確認ください。

https://docs.opentaco.dev/ce/howto/multiacc-aws

おわりに

OpenTacoで複数のAWSアカウントにリソースをデプロイする3つの方法を紹介しました。

どの方法でも複数アカウントへのデプロイは実現できるため、既存のAWSアカウント構成や運用方針に合わせて選択していただければと思います。

この記事をシェアする

FacebookHatena blogX

関連記事