【macOS】認証情報をローカルに保存せずCodeCommitのリポジトリをgit-remote-codecommitでcloneする環境構築手順
はじめに
AWS CodeCommit のリポジトリをローカル環境から clone/push する際、認証方式には複数の選択肢があります。
本記事では、git-remote-codecommit(GRC)を使った方式で、macOS 環境から CodeCommit リポジトリを clone するための環境構築手順を、実際に発生したトラブルとその解決方法も含めて詳細に解説します。
macOS に標準搭載されている Python(System Python)を使ってインストールを進めると、後述するような複数のトラブルに遭遇しやすいため、同じ問題に当たった方の参考になれば幸いです。
検証環境
- OS: macOS Tahoe 26.5.2
- Python: macOS 標準搭載の Python
(/usr/bin/python3または/Library/Developer/CommandLineTools/usr/bin/python3系、バージョン 3.9 系)
※ 後ほどwhichコマンドで確認すると上記からpipxでインストールされる python の PATH に変更されます - シェル: zsh
git-remote-codecommit とは
git-remote-codecommit (GRC) は CodeCommit の Git リポジトリに Git 認証情報の設定や SSH キーの設定を行わず IAM の権限でアクセスできる Python パッケージの認証補助ツールです。
| 方式 | AWS CLI ログイン状態 との関係 |
追加の認証情報の 発行が必要か |
|---|---|---|
| git-remote-codecommit | AWS CLI のセッションをそのまま利用 | 不要 |
| HTTPS Git 認証情報 | AWS CLI とは無関係 | 必要(IAM コンソールで個別発行) |
| SSH 鍵 | AWS CLI とは無関係 | 必要(IAM ユーザーへの公開鍵登録) |
すでにログイン済みの端末であれば、別途 CodeCommit 専用の認証情報を用意する必要がないという点が最大のメリットです。
ただし、これは「認証が不要」という意味ではなく「認証情報の入力作業が自動化されている」という点に注意してください。IAM ポリシーで CodeCommit へのアクセス権限が付与されていることが前提です。
// 最低限必要なIAMポリシーの例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codecommit:GitPull",
"codecommit:GitPush"
],
"Resource": "arn:aws:codecommit:ap-northeast-1:123456789012:リポジトリ名"
}
]
}
環境構築手順まとめ
先に構築手順のまとめから記載します。
私の環境の場合、以下のコマンドを実行することで git clone が可能になりました。4. を完了し AWS CLI と Git をインストールすれば環境構築は完了です(ここでは省略)。
# 1. Homebrewでpipxをインストール
brew install pipx
pipx ensurepath
source ~/.zshrc
# 2. pipxでgit-remote-codecommitをインストール
pipx install git-remote-codecommit
# 3. botocore[crt]を追加
pipx inject git-remote-codecommit "botocore[crt]" --force
# 4. 正しくインストールされたかの確認
which git-remote-codecommit
/Users/ユーザー名/.local/bin/git-remote-codecommit
↑のようなPATHが表示される
上記コマンドの詳細は以下の通りです。
1. pipx のインストール
pipx は CLI ツールごとに独立した仮想環境を自動生成してくれるため、macOS 標準の Python 環境に影響を与えなくて済みます。
brew install pipx
pipx ensurepath
pipx ensurepathを実行すると、pipx が生成する実行ファイルの格納場所(~/.local/bin)が自動的にシェルの設定ファイル(.zshrc など)の PATH に追加されます。
設定を反映させるため、ターミナルを再起動するか、以下を実行します。
source ~/.zshrc
補足: pipx は内部的に、指定した Python(デフォルトでは brew install python 等で入る Homebrew 版 Python が検出されることもありますが、明示的に macOS 標準 Python を使わせることも可能です)を使って、ツールごとに独立した仮想環境を作成します。今回の環境では、pipx が自動選択した Python バージョンで仮想環境が作成されました。
2. pipx で git-remote-codecommit をインストール
pipx install git-remote-codecommit
Successfully ~~ と表示されれば成功です。
3. botocore[crt] を追加
pipx inject git-remote-codecommit "botocore[crt]" --force
--forceなしの場合以下のような警告が出ることがあります。これは、botocore(extras なし)は既にインストール済みと認識され、[crt]付きの拡張機能が反映されないケースです。--force をつけて再実行することで反映されました。
#--force をつけないと以下のような表示がされます
⚠️ botocore already seems to be installed in 'git-remote-codecommit'.
Not modifying existing installation. Pass '--force' to force installation.
4. 正しくインストールされたかの確認
which git-remote-codecommit
/Users/ユーザー名/.local/bin/git-remote-codecommit
pipx が管理する PATH (~/.local/bin) が表示されれば OK です。環境構築は完了です。
pipx を利用した経緯については「補足」以降をご参照ください。
古い PATH (Library/Python/3.9/bin) が表示される場合は、PATH の優先順位を確認してください。
source ~/.zshrc を実行しても表示されない場合はターミナルの再起動を行って下さい。
aws login コマンドでログイン
AWS CLI をインストール後、ターミナルから AWS アカウントへログインするために aws login コマンドを使用します。詳細は省略しますが、簡単に述べるとブラウザ上でログイン中の AWS アカウントに接続できるコマンドです。
aws login
AWS CLIの 新機能 aws login コマンドを試してみた | DevelopersIO
ログイン後、以下のコマンドで接続状態を確認してみてください。
aws sts get-caller-identity
いざ、git clone を実施
Git をインストール後、以下のように git コマンドを実行して git clone を行います。
# 東京リージョンの場合
git clone codecommit:://ap-northeast-1/リポジトリ名
IAM のポリシーが正しく付与されていれば認証情報の入力もなく、ローカルに git clone が実施できます。
ここで clone に失敗する場合は、AWS にログインしている IAM ユーザのロールやポリシーに CodeCommit へのアクセス権限を確認してください。
(GRC におけるリポジトリの URL は CodeCommit 一覧画面の HTTPS (GRC) から確認できます)

補足:なぜ pipx なのか
pipxを実施する前に pip3 install でインストールしようとすると、以下のような警告が出力されました。
$ pip3 install git-remote-codecommit
<省略>
WARNING: The script git-remote-codecommit is installed in
'/Users/ユーザー名/Library/Python/3.9/bin' which is not on PATH.
これは macOS 標準の Python 環境に --user 相当の形でインストールされ、実行ファイルの格納場所がシェルの PATH に含まれていないという警告です。この時点では、PATH を追加すれば動作する想定でした。
しかし、PATH を追加して git clone をするとエラーが発生しました。
$ git clone codecommit:://ap-northeast-1://リポジトリ名
<省略>
botocore.exceptions.MissingDependencyException: Missing Dependency: Using the login credential provider requires an additional dependency. You will need to pip install "botocore[crt]" before proceeding.
aws loginを使用する場合、追加ライブラリ awscrtが必要になるため、エラー文の通り"botocore[crt]" を追加でインストールしようとしたのですが、ここでもエラーが発生してしまい、手詰まりになりました。
$ pip3 install "botocore[crt]"
<省略>
error: externally-managed-environment
× This environment is externally managed
原因: macOS 標準搭載の Python 環境(PEP 668 に対応したバージョン)では、OS 自体が管理するシステム領域を保護するため、pip による直接インストールがデフォルトで禁止されています。これは、OS の動作に必要な Python 環境をユーザーが誤って壊してしまうことを防ぐための安全機構です。
--userオプションを付けても、この制限は回避できません。--userは「インストール先の場所」を指定するオプションであり、externally-managed-environment は「そもそも直接インストールを許可しない」という、より上位の制限のためです。
以上のような経緯から今回は pipx を使用しました。
まとめ
GRC、pipx、aws loginを使って認証情報をローカルに保存せず git clone する手順を紹介しました。macOS として紹介しましたが、Windows 端末でも同様の手順で実施可能と思いますが、保証はできかねるのでご了承ください。
本記事がお役に立つことができれば幸いです。
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AI をフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、
クラスメソッドオペレーションズ株式会社 採用サイト をぜひご覧ください。※2026 年 1 月 アノテーション㈱から社名変更しました。




