
こんにちは。よっしーです(^^)
今日は、Terraformの実行用IAMユーザーの作成についてご紹介します。
背景
Terraformを使用してAWSリソースを管理する場合、下記の理由からTerraform専用のIAMユーザーを用意します。
- セキュリティの確保: Terraformを実行するために必要なAWSリソースへのアクセス権を持つIAMユーザーを作成し、そのユーザーに必要最小限のアクセス権限だけを付与することで、セキュリティを確保することができます。また、IAMユーザーごとにアクセスキーを作成することで、リソースのアクセスをトレース可能にすることができます。
- レポーティングの簡素化: Terraformの実行ログには、IAMユーザーの情報が含まれるため、複数のIAMユーザーを作成することで、実行ログを使って誰が何を行ったかを正確にレポートできます。
- ロール分離: Terraformを実行するIAMユーザーを作成することで、他のIAMユーザーが誤ってTerraformを実行してしまうリスクを低減することができます。また、Terraformを実行するIAMユーザーの権限を最小限に制限することで、Terraform実行時にAWSリソースを誤って変更することを防ぐことができます。
- インフラストラクチャの変更管理: Terraformを使用する場合、インフラストラクチャの変更履歴がTerraformのステートに保存されます。IAMユーザーを作成することで、変更履歴がどのユーザーによって行われたのかを追跡することができます。
以上のように、Terraformを実行するためのIAMユーザーを作成することで、セキュリティの確保、レポーティングの簡素化、ロール分離、インフラストラクチャの変更管理など、さまざまな利点があります。Terraformを使用する際には、IAMユーザーの作成を検討することをおすすめします。
IAMユーザの作成
IAMユーザーの作成の前に
IAMユーザーを作成するには、AWSアカウントが必要なため、下記の公式サイトの手順に従って、AWSアカウントの作成をお願いします。
IAMユーザーの作成手順
AWSマネジメントコンソールにログインする: AWSのマネジメントコンソールにログインします。
IAMダッシュボードを開く: ナビゲーションメニューから「IAM」を選択し、IAMダッシュボードを開きます。

ユーザーを作成する: 「ユーザーの追加」をクリックして、新しいIAMユーザーを作成します。

ユーザー名を入力し、「次へ」をクリックします。
なお、「AWSマネジメントコンソールへのユーザアクセスを選択する」は未選択にしておきます。AWSマネジメントコンソールを使用しないためです。

ポリシーはあとから更新するため、今回は、何もポリシーをつけずに、「次へ」をクリックします。

「ユーザーの作成」をクリックします。

「セキュリティ設定情報」タブをクリックします。

「アクセスキーを作成」をクリックします。

「次へ」をクリックします。

説明タグに「terraform」を入力して「アクセスキーを作成」をクリックします。

「csvファイルをダウンロード」をクリックして、アクセスキーの情報を保管します。この情報は機密情報なため、流出して悪用されないように管理する必要があります。

これで、Terraform実行用のユーザー作成が完了しました。あとは、ポリシーの設定になりますが、これは次回ご説明いたします。
解説
IAMユーザーとは
AWS Identity and Access Management (IAM) ユーザーは、AWSアカウント内で作成され、AWSリソースへのアクセスを許可するためのアクセスキーとシークレットアクセスキーを持つエンティティです。IAMユーザーは、AWSリソースにアクセスするために必要なポリシーとロールを割り当てることができます。
IAMユーザーは、アプリケーションやサービス、ユーザーなどの異なるエンティティにアクセスを許可するために使用されます。IAMユーザーは、エンティティに必要な最小限のアクセス許可を割り当てることができます。IAMユーザーを使用すると、アカウント内のアクセスレベルを制御することができ、セキュリティを強化することができます。
また、IAMユーザーには、MFA (Multi-Factor Authentication) などのセキュリティ設定を適用することもできます。IAMユーザーは、AWSコンソール、CLI、API、SDKなど、さまざまな方法でアクセスすることができます。
IAMユーザーは、Terraformなどのインフラストラクチャ管理ツールで使用される場合があります。IAMユーザーは、TerraformがAWSリソースを管理するために必要なアクセス許可を持つロールを割り当てることができます。
詳しくは、下記の公式サイトを御覧ください。
おわりに
今日は、Terraformの実行用IAMユーザーの作成についてご紹介しました。
次回は、このTerraformのIAMユーザーにポリシーを設定する方法をご紹介したいと思います。

何か質問や相談があれば、遠慮なくコメントしてください。また、エンジニア案件についても、いつでも相談にのっていますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント