coiai Logo

【WSL入門】Ubuntu on WSL2 に開発ツールを一式そろえる — Git / nvm / pnpm / AWS CLI / Terraform

前回の記事では、Windows に WSL2 を導入して Ubuntu が動くところまでを扱いました。
ただ、素の Ubuntu はあくまで「まっさらな Linux」です。ここから実際に開発を始めるには、バージョン管理・ランタイム・クラウド操作のツールを自分で入れていく必要があります。

この記事では、すべて公式ドキュメントに載っている手順だけを使って、次のツールを順番にセットアップします。

  1. 基本ツール(ビルド環境・ネットワークツール)
  2. Git(+ Windows 側と認証情報を共有する Git Credential Manager)
  3. nvm → Node.js
  4. pnpm
  5. AWS CLI v2
  6. Terraform

各セクションの末尾に出典 URL を置いてあるので、手順が古くなったと感じたらそこを見に行ってください。記事末尾には出典一覧もまとめています。

検証環境
Windows 11 / WSL2 / Ubuntu 24.04 LTS(x86_64)
確認日:2026年7月28日

バージョン番号は執筆時点のものです。インストールコマンド自体は基本的に「常に最新を取ってくる」形になっているので、そのまま実行して問題ありません。


はじめに:WSL開発の大原則

コマンドに入る前に、ひとつだけ。Microsoft の公式ドキュメントが繰り返し書いている重要な原則があります。

使う予定のツールと同じ OS 側にファイルを置く。
Linux ツールで Linux コマンドラインから作業しているなら、最速のパフォーマンスを出すためにファイルは WSL ファイルシステムに格納します。

具体的には、プロジェクトは次の場所に置きます。

  • \\wsl$\Ubuntu\home\<ユーザー名>\Project(Linux 側 = ~/Project
  • C:\Users\<ユーザー名>\Project(= WSL から見た /mnt/c/Users/...

/mnt/c/ 配下はファイルシステムをまたぐため、npm installgit status が体感でわかるほど遅くなります。第2弾でこれから入れるツールも、すべて Linux 側のホームディレクトリを前提に使ってください。

出典:WSL 開発環境を設定する — Microsoft Learn


1. まずは基本ツール

Ubuntu を起動したら、最初にやることはパッケージの更新です。Microsoft の公式ドキュメントにもこう書かれています。

ディストリビューションの優先パッケージ マネージャーを使用して、パッケージを定期的に更新およびアップグレードすることをお勧めします。
Windows では、Linux ディストリビューションの更新やアップグレードは自動的に行われません。

sudo apt update && sudo apt upgrade

apt update はパッケージ一覧の更新、apt upgrade は実際のアップグレードです。WSL は勝手にアップデートしてくれないので、これは月イチくらいで習慣にしておくのがおすすめです。

続いて、この記事の後半で必要になるツールをまとめて入れておきます。

sudo apt install -y \
  build-essential \
  curl \
  wget \
  unzip \
  ca-certificates \
  gnupg \
  software-properties-common

それぞれの役割は以下の通りです。

  • build-essential — gcc / make など。Node.js のネイティブモジュールをビルドするときに必要になります
  • curl / wget — インストールスクリプトの取得に使用。この後ほぼ全セクションで登場します
  • unzip — AWS CLI の zip 展開に必須(AWS 公式が要件として明記)
  • ca-certificates / gnupg — HTTPS 通信と GPG 署名検証に使用。Terraform のリポジトリ登録で必要
  • software-properties-commonadd-apt-repository コマンドを提供。Git の PPA 追加で使用

HashiCorp の公式チュートリアルも、Terraform を入れる前段としてこう書いています。

sudo apt-get update && sudo apt-get install -y gnupg software-properties-common

出典:


2. Git

2-1. Git は「Windows と WSL の両方」に入れる

まず理解しておきたい前提。Microsoft の公式ドキュメントはこう書いています。

Git を使用する予定の各ファイル システムに Git をインストールする必要があります。

WSL は Windows とは別のファイルシステムを持っています。つまり Windows 側の Git と WSL 側の Git は完全に別物で、バージョンも設定ファイルも別々です。この記事では WSL 側を入れますが、Windows 側にも Git for Windows を入れておくことが推奨されています(理由は後述の Credential Manager のところで説明します)。

2-2. インストール

Ubuntu にはたいてい Git が最初から入っていますが、バージョンが古いことが多いです。Git 公式サイトは、Ubuntu/Debian で最新の安定版を入れる方法として PPA を案内しています。

sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git

ppa:git-core/ppa は Git のメンテナが管理している公式の PPA で、Ubuntu 標準リポジトリより新しいバージョンが提供されます。

バージョンにこだわらないなら、標準リポジトリからでも構いません。

sudo apt install git

確認:

git --version

2-3. ユーザー情報の設定

コミットに刻まれる名前とメールアドレスを設定します。

git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"

設定ファイルを直接編集したいときは nano ~/.gitconfig で開けます。

2-4. Git Credential Manager で Windows と認証情報を共有する

ここが WSL ならではの便利ポイントです。

Git Credential Manager(GCM) は .NET 製の資格情報ヘルパーで、GitHub・Azure DevOps・Bitbucket の多要素認証に対応しています。認証トークンを Windows 資格情報マネージャーに安全に保存してくれるので、一度認証すれば以降は再認証なしで push / pull できます。

WSL で使うには Windows 10 バージョン 1903 以降が必要です(GCM が WSL 側の Git と連携するために wsl.exe を使うため)。

推奨されるのは、Windows 側に Git for Windows を入れる方法です。GCM は Git for Windows に同梱されているため、インストール時に「GCM を既定の資格情報ヘルパーにする」を選ぶだけで済みます。

Git for Windows を入れたら、WSL 側で GCM が見えているか確認します。

git-credential-manager.exe --version
2.7.3+5fa7116896c82164996a609accd1c5ad90fe730a

このようにバージョンが返ってくればOKです。

⚠️ ここは Microsoft 公式ドキュメントの記述にひとつ罠があります。
公式には確認コマンドとして git --version; git credential-manager --version と書かれていますが、WSL 側でこれを実行すると失敗します。

$ git --version; git credential-manager --version
git version 2.54.0
git: 'credential-manager' is not a git command. See 'git --help'.

git credential-manager という書き方は、Git が「git-credential-manager という名前の実行ファイル」を PATH から探す仕組みです。しかし WSL から見える実体は git-credential-manager.exe で、Linux 版の Git は拡張子 .exe を補完しません。そのため見つけられずにエラーになります。

GCM が入っていないわけではないので、慌てなくて大丈夫です。上記のように .exe を明示して実行すれば確認できます。ファイルの存在を直接見てもOKです。

ls -l "/mnt/c/Program Files/Git/mingw64/bin/git-credential-manager.exe"

続いて、WSL 側の Git に「認証は GCM に任せる」と設定します(GCM 公式リポジトリの手順)。

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

パス中の空白を \ でエスケープしている点に注意してください。設定されたか確認するには次のコマンドを実行します。

git config --global credential.helper

これで、WSL 内で実行する git 操作はすべて GCM 経由になります。Windows 側でキャッシュ済みの資格情報があればそれが使われ、まだなければ、Linux コンソールで作業していても Windows のダイアログが出てきて認証を求められます。

Azure DevOps / Azure Repos を使う場合は、追加でこの設定が必要です。

git config --global credential.https://dev.azure.com.useHttpPath true

注意点が2つあります。

  1. GCM は WSL 側の git config を見ません。 GCM は Windows アプリとして動くため、設定の参照先は Windows 側の %UserProfile%\.gitconfig です。プロキシ設定などは Windows 側と WSL 側(\\wsl$\distro\home\$USER\.gitconfig)の両方に書く必要があります。
  2. GCM は HTTP(S) リモートでのみ動作します。 SSH で運用したい場合は GCM ではなく、GitHub の SSH 接続ガイドに従って鍵を設定してください。

なお、Git for Windows を入れずに WSL 側だけで完結させることも可能ですが、その場合 GCM は Linux アプリとして動くため、Windows の認証・資格情報ストレージ機能は使えません。手順はGCM 公式ドキュメントの該当セクションにあります。

2-5. 改行コード(ここでハマる人が多い)

Windows と Linux で同じリポジトリを触ると、Git が「大量のファイルが変更された」と報告してくることがあります。中身は同じで、改行コードだけが違うという状態です。

対策は次のどちらかです。

  • リポジトリに .gitattributes を置いて改行コードを明示する(推奨)
  • Windows 側でグローバルに改行変換を無効化する

詳しい対処は VS Code のトラブルシューティングドキュメントにまとまっています。

2-6. .gitignore

プロジェクトには .gitignore を置きましょう。GitHub が用途別のテンプレート集を公開しているので、そこからコピーするのが早いです。

出典:


3. nvm と Node.js

3-1. なぜ nvm なのか

Node.js は apt install nodejs でも入りますが、Ubuntu の標準リポジトリのバージョンはかなり古く、しかもプロジェクトごとにバージョンを切り替えられません。nvm(Node Version Manager) を使えば、複数バージョンの Node.js を共存させてコマンド一発で切り替えられます。

3-2. インストール

nvm 公式リポジトリが案内しているインストールコマンドです(執筆時点の最新は v0.40.6)。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash

wget 派の人はこちら。

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash

⚠️ URL にバージョン番号(v0.40.6)が直接埋め込まれている点に注意してください。この記事を読んでいる時点でより新しいバージョンが出ている可能性があります。実行前に nvm-sh/nvm の Releases で最新タグを確認して、URL のバージョン部分を置き換えるのが確実です。

スクリプトは ~/.bashrc に以下を自動で追記します(うまく入らなかった場合は手動で追記してください)。

export NVM_DIR="$( [ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

追記後、ターミナルを一度閉じて開き直します(または source ~/.bashrc)。

3-3. 確認

command -v nvm

nvm と表示されれば成功です。

⚠️ which nvm では確認できません。 nvm は実行ファイルではなくシェル関数として読み込まれるためです。ここは公式 README がわざわざ注意書きしているポイントで、「インストールしたのに which で出てこない」と焦る人が多い箇所です。

3-4. Node.js を入れる

nvm install --lts     # 最新のLTSを入れる(本番用途はこれ)
nvm install 24        # メジャーバージョンを指定して入れる
nvm use 24            # 使うバージョンを切り替える
node -v               # 確認

2026年7月現在の Node.js のリリース状況はこうなっています。

  • Active LTS:v24(Krypton) ← 本番環境で推奨されるのはこれ
  • Maintenance LTS:v22(Jod)
  • Current:v26

迷ったら nvm install --lts で Active LTS を入れておけば間違いありません。

💡 プロジェクトのルートに .nvmrc というファイルを作ってバージョン(例:24)を書いておくと、そのディレクトリで nvm use するだけで切り替わります。チーム開発では地味に効きます。

出典:


4. pnpm

pnpm は npm 互換のパッケージマネージャで、ディスク上で依存パッケージを共有する仕組みにより、インストールが速くディスク消費も小さいのが特徴です。

pnpm 公式ドキュメントは3つの方法を案内しています。順に見ていきます。

方法A:Corepack 経由(公式が推奨)

corepack enable pnpm
corepack use pnpm@latest-11

Corepack を使う利点は、package.json にパッケージマネージャのバージョンが記録され、チーム全員が同じバージョンを使えることです。再現性を重視するプロジェクトに向いています。

⚠️ Node.js 25 以降は Corepack が同梱されません。
2025年3月19日、Node.js の TSC は v25 以降で Corepack を配布しないことを正式に決定しました。Node.js 24 以前では experimental 機能として引き続き利用できます。

Node 25 以降で Corepack を使いたい場合は、別途インストールが必要です。

npm install -g corepack

Active LTS の v24 を使っている限りは同梱されているので、当面はそのまま corepack enable pnpm で動きます。

方法B:npm 経由

Node.js が入っていれば一番シンプルです。

npm install -g pnpm@latest-11

Corepack の同梱状況に左右されないので、この記事の構成(nvm で Node を入れる)なら方法Bが一番素直だと思います。

方法C:スタンドアロンスクリプト

Node.js なしでも入れられる方法です。

curl -fsSL https://get.pnpm.io/install.sh | sh -

wget 派:

wget -qO- https://get.pnpm.io/install.sh | sh -

バージョンを指定したい場合:

curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=<version> sh -

注意事項と確認

公式ドキュメントに記載されている注意点です。

  • Node.js の最小要件は v22(pnpm 11.x の場合)。nvm で v24 LTS を入れていれば問題ありません
  • 最小構成の Linux コンテナでは libatomic.so.1 が別途必要になる場合があります
  • Intel Mac ではスタンドアロン版が動作しないため npm / Corepack / Homebrew を使う、という記述もあります(WSL では無関係ですが念のため)

確認:

pnpm --version

執筆時点の最新は 11.17.0 です。

出典:


5. AWS CLI v2

5-1. インストール(クイック版)

AWS 公式ドキュメントが「コピペ用」として提示している3行です。x86_64(Intel/AMD の 64bit)向け。

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

ARM 環境(Snapdragon 搭載 PC など)の場合は URL を差し替えます。

curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

デフォルトでは /usr/local/aws-cli にファイルが置かれ、/usr/local/bin にシンボリックリンクが張られます。sudo はこれらのディレクトリへの書き込み権限のために必要です。

確認:

aws --version
aws-cli/2.36.9 Python/3.13.4 Linux/5.15.167.4-microsoft-standard-WSL2 exe/x86_64.ubuntu.24

こんな出力が返ればOKです(バージョンや環境の部分は各自で異なります)。

aws コマンドが見つからない場合は、ターミナルを再起動してみてください。

5-2. 【推奨】署名を検証してからインストールする

AWS 公式は「上記のクイック手順はダウンロードの整合性を検証していません」と明記しています。zip は PGP 署名されているので、検証したほうが安全です。

手順1:GPG をインストール(基本ツールのセクションで入れていれば不要)

sudo apt install gnupg

手順2:AWS CLI の公開鍵をファイルに保存

aws-cli-key.asc などのファイル名で、以下を保存します。

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUG
ZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzx
(中略:全文は下記の公式ドキュメントからコピーしてください)
-----END PGP PUBLIC KEY BLOCK-----

鍵の詳細は以下の通りです。ここが一致していることを確認してください。

Key ID:           A6310ACC4672475C
Type:             RSA
Size:             4096/4096
Created:          2019-09-18
Expires:          2027-07-01
User ID:          AWS CLI Team <aws-cli@amazon.com>
Key fingerprint:  FB5D B77F D5C1 18B8 0511  ADA8 A631 0ACC 4672 475C

手順3:鍵をインポート

gpg --import aws-cli-key.asc

手順4:署名ファイルをダウンロード

curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip.sig

手順5:検証

gpg --verify awscliv2.sig awscliv2.zip

Good signature from "AWS CLI Team <aws-cli@amazon.com>" が出れば成功です。

このとき WARNING: This key is not certified with a trusted signature! という警告が出ますが、これは想定内で問題ありません。自分の PGP 鍵と AWS の鍵の間に信頼の連鎖がないだけです。AWS 公式ドキュメントにもそう明記されています。

検証が通ったら、展開してインストールします。

unzip awscliv2.zip
sudo ./aws/install

5-3. アップデート方法

AWS CLI v2 は自動更新されません。更新するときは新しいインストーラをダウンロードし直して --update を付けて実行します。

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip -u awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update

unzip -u(update フラグ)を使うと、上書き確認のプロンプトをスキップできます。

既存のインストール先がわからなくなったら、次のコマンドで調べられます。

which aws                    # --bin-dir に渡すパス
ls -l /usr/local/bin/aws     # リンク先 = --install-dir に渡すパス

5-4. 補足:snap という選択肢

常に最新版でよく、バージョン固定が不要なら snap も公式サポートされています。

sudo snap install aws-cli --classic

snap は自動更新されるのがメリットですが、マイナーバージョンを選ぶ組み込みサポートがないため、チームでバージョンを固定したい場合はコマンドラインインストーラのほうが適している、と公式は説明しています。

なお、AWS 公式ドキュメントは「AWS は snap 以外のサードパーティリポジトリを管理していないため、最新版が含まれる保証がない」と注意しています。apt install awscli は避けたほうが無難です。

出典:Installing or updating to the latest version of the AWS CLI — AWS ドキュメント


6. Terraform

Terraform は HashiCorp が公式の apt リポジトリを提供しているので、一度登録してしまえば以降は apt upgrade で更新できます。

6-1. GPG キーを登録

wget -O- https://apt.releases.hashicorp.com/gpg | \
  gpg --dearmor | \
  sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg > /dev/null

6-2. キーの fingerprint を検証

公式チュートリアルはこのステップを挟んでいます。

gpg --no-default-keyring \
  --keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg \
  --fingerprint

出力された fingerprint が、HashiCorp が公式に公開している署名鍵のものと一致するか確認してください。

6-3. リポジトリを追加

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | \
  sudo tee /etc/apt/sources.list.d/hashicorp.list

長いですが、やっていることは単純です。

  • $(dpkg --print-architecture) — CPU アーキテクチャを自動判定
  • signed-by=... — さっき登録したキーでのみ署名検証する指定
  • $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) — Ubuntu のコードネーム(noble など)を自動取得。取れなければ lsb_release -cs にフォールバック

6-4. インストール

sudo apt update
sudo apt-get install terraform

確認:

terraform -version

執筆時点の最新安定版は v1.15.8(2026年7月8日リリース)です。

6-5. タブ補完を有効にする

これは入れておくと体験がかなり変わります。

terraform -install-autocomplete

実行後、シェルを再起動すると terraform pl → Tab で terraform plan が補完されるようになります。

出典:


7. 動作確認

最後にまとめて確認しましょう。

git --version
node -v
npm -v
pnpm --version
aws --version
terraform -version

執筆時点(2026年7月28日)の各バージョンは以下の通りです。参考までに。

ツール執筆時点のバージョンインストール方法
Git2.5x 系(PPA の最新安定版)ppa:git-core/ppa
nvmv0.40.6install.sh
Node.jsv24(Active LTS)nvm install --lts
pnpm11.17.0npm または Corepack
AWS CLI2.36.9公式インストーラ(zip)
Terraform1.15.8HashiCorp apt リポジトリ

ハマりどころまとめ

第2弾を通して出てきた注意点を、最後にもう一度並べておきます。

1. /mnt/c/ にプロジェクトを置かない
ファイルシステムをまたぐと明確に遅くなります。プロジェクトは ~/ 配下へ。

2. Windows 側と WSL 側は別環境
Git は両方に必要。git config も別々に保存されます。「Windows で設定したのに WSL で効かない」は仕様です。

3. which nvm は使えない
nvm はシェル関数なので command -v nvm で確認します。

4. Node.js 25 以降は Corepack が同梱されない
pnpm を Corepack で管理している場合、Node をアップグレードしたタイミングで壊れます。CI や Dockerfile も要チェックです。

5. AWS CLI は自動更新されない
--update を付けて再インストールする必要があります。忘れがちなのでカレンダーに入れておくのがおすすめです。

6. Git の改行コード
Windows と Linux をまたぐと大量の差分が出ます。.gitattributes で明示するのが確実です。

7. git credential-manager --version は WSL では動かない
Microsoft 公式ドキュメントに載っている確認コマンドですが、Linux 版 Git は .exe を補完しないため is not a git command になります。git-credential-manager.exe --version と書けば動きます。GCM が入っていないわけではありません。


おわりに

これで、WSL2 上の Ubuntu に開発の基礎セットがそろいました。Git でコードを管理し、Node.js/pnpm でフロントエンドを動かし、AWS CLI と Terraform でクラウドを操作する — ひととおりの土台ができた状態です。

次回はこの環境の上で、VS Code の WSL 拡張を使ったリモート開発や、Docker との連携あたりを扱えたらと思います。


出典一覧

すべて 2026年7月28日 に確認しています。

WSL / 環境全般

Git

Node.js / nvm

pnpm

AWS CLI

Terraform

この記事をシェア

投稿日: 2026年7月28日
カテゴリ: 未分類
タグ:
coiai

coiai

この記事もおすすめ

デフォルトサムネイル

WindowsでWSL2をセットアップしてUbuntuを使えるようにする

TerraformやAWS CLI、Dockerを快適に使うために、WindowsにWSL2を導入しました。 この記事では、実際に行ったセットアップ手順と、途中で遭遇したエラーへの対処方法をまとめます。 なぜWSLを使うのか? WSL(Windows Subsystem for Linux)は、Windows上でLinux環境を動かすための仕組みです。 AWSやTerraform、Dockerなど、多くの開発ツールはLinux環境との相性が良いため、Windowsで開発する場合でもWSL2を利用するのが一般的です。 今回の開発環境では以下のような構成を想定しています。 1. WSLをインストール PowerShell(管理者)を開き、以下を実行します。 2. Ubuntuの初回セットアップ Ubuntuを起動すると、Linuxユーザー名とパスワードの設定を求められます。 例 好きなユーザー名を入力します。 続いてパスワードを設定します。 ※入力中は文字が表示されませんが正常な動作です。 3. パッケージを更新 Ubuntuを起動したら、まず最新状態へ更新します。 4. エラーが表示された アップグレード中に次のようなメッセージが表示されました。 一見エラーに見えますが、今回は最後まで と表示され、更新自体は正常に完了していました。 WSLではsystemd関連の処理で、このような警告が表示されることがあります。 5. WSLの状態を確認 PowerShellで以下を実行します。 今回は となっていました。 6. Docker DesktopとUbuntuの違い ここで少し混乱しやすいポイントがあります。 Docker Desktopをインストールすると、docker-desktopというWSLディストリビューションが作成されます。 しかし、これはDockerが内部で利用するためのもので、普段の開発を行う場所ではありません。 おすすめの構成は次の通りです。 開発はUbuntuで行い、Docker Desktopはコンテナ実行基盤として利用します。 7. Ubuntuを既定のディストリビューションに変更 現在登録されているWSLを確認します。 Ubuntuがインストールされていることを確認したら、 を実行します。 これで だけでUbuntuが起動するようになります。 今後インストール予定 WSL環境では今後以下を導入していきます。 この環境をベースに、AWS Organizations、IAM [&hellip;]

AWS IAM Identity Centerとは?IAM Userを使わないAWS認証・権限管理のベストプラクティス

AWS IAM Identity Centerとは?IAM Userを使わないAWS認証・権限管理のベストプラクティス

AWS Organizationsによるマルチアカウント環境を構築した後、次に設定したのがAWS IAM Identity Centerです。 以前はAWSへログインするためにIAM Userを作成することが一般的でしたが、現在AWSでは、人がAWSへログインする場合はIAM Identity Centerの利用を推奨しています。 今回は、IAM Identity Centerを導入した理由と、実際の設定内容についてまとめます。 IAM Identity Centerとは IAM Identity Center(旧 AWS Single Sign-On)は、複数のAWSアカウントやAWSアプリケーションへの認証・認可を一元管理するサービスです。 従来のように各AWSアカウントへIAM Userを作成する必要はなく、 というメリットがあります。 AWS Organizationsと組み合わせることで、マルチアカウント環境の運用が大幅に容易になります。 なぜIAM UserではなくIdentity Centerなのか 以前は、このような構成が一般的でした。 しかし、この方法では といった課題があります。 Identity Centerを利用すると、ユーザー情報は一元管理され、各AWSアカウントには必要な権限だけを割り当てる運用になります。 AWS Well-Architected Frameworkでも、人によるアクセスにはフェデレーション認証を利用し、長期認証情報(IAM Userのアクセスキーなど)をできる限り利用しないことが推奨されています。 今回の構成 今回は次のようなシンプルな構成にしました。 グループ Administrators AWS環境全体を管理するメンバーです。 現在は を所属させる予定です。 Developers アプリケーションやインフラ開発を行うメンバー向けです。 今回はまだ利用していませんが、開発メンバーが増えた際に使用します。 将来的には などを割り当てる予定です。 ReadOnly 閲覧専用グループです。 監査やレビュー、外部アドバイザー向けとして利用します。 今回は技術メンターにReadOnly権限を付与することを想定しています。 Permission [&hellip;]

AWS Organizationsで始めるマルチアカウント設計 ― 小規模開発チーム向けのベストプラクティス

AWS Organizationsで始めるマルチアカウント設計 ― 小規模開発チーム向けのベストプラクティス

サービスの開発を進めるにあたり、AWSの初期構築を行いました。 今回は、AWS Organizationsを利用してマルチアカウント環境を構築し、今後TerraformによるIaC(Infrastructure as Code)やGitHub Actionsを利用したCI/CDを前提とした設計を採用しています。 この記事では、実際に構築した構成と、その設計意図をまとめます。 なぜ最初にAWS Organizationsを導入するのか AWSでは1つのアカウントにすべてのリソースを作成することもできます。 しかし、開発が進むにつれて次のような問題が発生します。 AWSではこのような課題に対応するため、マルチアカウント構成を推奨しています。AWS Organizations ユーザーガイド Organizationsとは AWS Organizationsは、複数のAWSアカウントをまとめて管理するためのサービスです。 OrganizationsにはOU(Organizational Unit)という概念があります。 OUはEC2やS3を配置する場所ではなく、AWSアカウントを整理するためのフォルダのような存在です。 例えば、 というようにOUを作成し、その中へAWSアカウントを配置していきます。 OUを利用することで、将来的にSCP(Service Control Policies)などのポリシーをまとめて適用できるようになります。AWS Organizations のベストプラクティス 今回採用した構成 今回はAWS Security Reference Architecture(AWS SRA)の考え方を参考にしつつ、小〜中規模の開発チーム向けにシンプルな構成を採用しました。AWS Security Reference Architecture (AWS SRA) Infrastructure OU インフラ運用に必要なAWSアカウントを配置します。 Log CloudTrailをはじめとする監査ログを集約するためのアカウントです。 AWSではCloudTrailのイベント履歴は標準で90日間参照できますが、長期間保持する場合はS3へ保存する構成が推奨されています。 さらに、一定期間経過後はS3 Glacierへ移行することで保管コストを抑えることができます。 今後はCloudTrailだけでなく、各種監査ログもこのアカウントへ集約する予定です。 Security Security HubやGuardDuty、AWS Configなどのセキュリティサービスを配置するためのアカウントです。 今回はまだ構築していませんが、 を集約する予定です。 AWS SRAでも、ログ管理アカウントとセキュリティアカウントを分離する構成が推奨されています。 [&hellip;]

この記事を書いた会社

株式会社coiaiは、「想像できることを美しく実現」を掲げ、XR・Web・アプリ・システム開発およびDX支援を行う会社です。 創業2022年、東京都練馬区に本社を置き、要件のヒアリングからPoC(概念実証)、本番運用まで一貫して伴走します。 まずはお気軽にご相談ください。

商号株式会社 coiai創業2022年1月設立2025年1月23日資本金1,500,000円(設立時点)本社所在地東京都練馬区関町北 3-6-9代表者代表取締役 竹村 啓佑 / 代表取締役 服部 陽良

主なご相談内容

会社概要・役員紹介を見る

詳しい会社情報は会社概要ページでご覧いただけます。

資料請求・無料相談

導入要件のヒアリングからPoC、本番運用まで伴走します。まずはお気軽にご相談ください。

お問い合わせの前に 個人情報保護方針 をご確認ください。