

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# への認証情報ヘルパーと HTTPS 接続のトラブルシューティング AWS CodeCommit
<a name="troubleshooting-ch"></a>

以下の情報は、 AWS CLI および HTTPS に含まれている認証情報ヘルパーを使用して CodeCommit リポジトリに接続する際の一般的な問題のトラブルシューティングに役立ちます。

**注記**  
認証情報ヘルパーは、フェデレーティッドアクセス、ID プロバイダー、または一時的な認証情報を使用して CodeCommit に接続するためにサポートされている方法ですが、**git-remote-codecommit** ユーティリティをインストールして使用する方法が推奨されます。詳細については、「[git-remote-codecommit AWS CodeCommit を使用した への HTTPS 接続のセットアップ手順](setting-up-git-remote-codecommit.md)」を参照してください。

**Topics**
+ [`git config` コマンドを実行して認証情報ヘルパーを設定しようとするとエラーが発生する](#troubleshooting-os-syn1)
+ [リポジトリのクローンの作成を試みているときに、ユーザー名の読み取りエラーが表示される](#troubleshooting-gitconfig1)
+ [認証情報ヘルパーを使用すると Windows でコマンドが見つかりませんというエラーが表示される](#troubleshooting-py3)
+ [CodeCommit リポジトリへの接続時にユーザー名の入力を求められる](#troubleshooting-ae1)
+ [Git for macOS: 認証情報ヘルパーは正常に設定できましたが、リポジトリへのアクセスが拒否されます (403)](#troubleshooting-macoshttps)
+ [Git for Windows: Git for Windows をインストールしましたが、リポジトリへのアクセスが拒否されます (403)](#troubleshooting-windowshttps)

## `git config` コマンドを実行して認証情報ヘルパーを設定しようとするとエラーが発生する
<a name="troubleshooting-os-syn1"></a>

**問題:** Git config コマンドを実行して CodeCommit リポジトリと通信するように認証情報ヘルパーを設定しようとすると、引数が少なすぎるというエラーや、Git config コマンドと構文の使用に関するプロンプトが表示される。

**解決方法:** このエラーの最も一般的な原因は、Windows オペレーティングシステムでコマンドに一重引用符が使用されている、もしくは Linux、macOS、UNIX オペレーティングシステムでコマンドに二重引用符が使用されていることです。正しい構文は次のとおりです。
+ Windows: `git config --global credential.helper "!aws codecommit credential-helper $@"`
+ Linux、macOS、または Unix: `git config --global credential.helper '!aws codecommit credential-helper $@'`

## リポジトリのクローンの作成を試みているときに、ユーザー名の読み取りエラーが表示される
<a name="troubleshooting-gitconfig1"></a>

**問題:** 認証情報ヘルパーを使用してリポジトリのクローンを作成しようとすると、リポジトリ URL のユーザー名を読み取れなかったことを示すエラーが表示される。

**解決方法:** このエラーの最も一般的な理由は、.gitconfig ファイルがコンピュータ上で正しく作成または設定されていないことです。.gitconfig ファイルを開き、認証情報ヘルパーが正しく設定されていることを確認します。Linux、macOS、または Unix を実行しているコンピュータを使用している場合は、`$HOME `の値がシステムに対して正しく設定されていることを確認します。

## 認証情報ヘルパーを使用すると Windows でコマンドが見つかりませんというエラーが表示される
<a name="troubleshooting-py3"></a>

**問題:** CLI AWS を更新した後、CodeCommit リポジトリへの認証情報ヘルパー接続は で失敗します`aws codecommit credential-helper $@ get: aws: command not found`。

**原因**: このエラーの最も一般的な理由は、CLI AWS バージョンが Python 3 を使用するバージョンに更新されたことです。MSI パッケージに関する既知の問題があります。該当するバージョンのいずれかを持っているかどうかを確認するには、コマンドラインを開き、次のコマンドを実行します: `aws --version`

出力された Python のバージョンが 3 で始まる場合は、該当するバージョンがあります。例: 

```
aws-cli/1.16.62 Python/3.6.2 Darwin/16.7.0 botocore/1.12.52
```

**解決方法:** この問題を回避するには、次のいずれかを実行します。
+ MSI の代わりに Python と pip を使用して Windows AWS CLI に をインストールして設定します。詳細については、[「Windows AWS CLI での Python、pip、および のインストール](https://docs.aws.amazon.com/cli/latest/userguide/install-windows.html#awscli-install-windows-pip)」を参照してください。
+ 手動で `.gitconfig` ファイルを編集して、ローカルコンピュータの `[credential]` セクションを明示的に `aws.cmd` を指すように変更します。例:

  ```
  [credential]    
      helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ 
      UseHttpPath = true
  ```
+ **git config** コマンドを実行して `.gitconfig` を明示的に参照するように `aws.cmd` ファイルを更新し、必要に応じてコマンドへのパスを含めるように PATH 環境変数を手動で更新します。例: 

  ```
  git config --global credential.helper "!aws.cmd codecommit credential-helper $@"
  git config --global credential.UseHttpPath true
  ```

## CodeCommit リポジトリへの接続時にユーザー名の入力を求められる
<a name="troubleshooting-ae1"></a>

**問題:** 認証情報ヘルパーを使用して CodeCommit リポジトリに接続しようとすると、ユーザー名を求めるメッセージが表示される。

**解決方法:** AWS プロファイルを設定するか、使用しているプロファイルが CodeCommit の操作用に設定したプロファイルであることを確認します。セットアップの詳細については、「[AWS CLI 認証情報ヘルパーを使用した Linux、macOS、または Unix 上の AWS CodeCommit リポジトリへの HTTPS 接続のセットアップ手順](setting-up-https-unixes.md) または [AWS CLI 認証情報ヘルパーを使用した Windows 上の AWS CodeCommit リポジトリへの HTTPS 接続のセットアップ手順](setting-up-https-windows.md)」を参照してください。IAM、アクセスキー、シークレットキーに関する詳細については、[IAM ユーザーのアクセスキーの管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html)および[認証情報を取得する方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_Introduction.html#IAM_SecurityCredentials)を参照してください。

## Git for macOS: 認証情報ヘルパーは正常に設定できましたが、リポジトリへのアクセスが拒否されます (403)
<a name="troubleshooting-macoshttps"></a>

**問題:** macOS で、認証情報ヘルパーによって認証情報が正常にアクセスまたは使用されていないように見える。原因として 2 つの問題が考えられます。
+  AWS CLI は、リポジトリが存在する AWS リージョン とは異なる 用に設定されています。
+ Keychain Access ユーティリティで保存されている認証情報の有効期限が切れています。

**解決方法:** AWS CLI が正しいリージョンに設定されているかどうかを確認するには、 **aws configure** コマンドを実行し、表示される情報を確認します。CodeCommit リポジトリが に示されているもの AWS リージョン とは異なる にある場合は AWS CLI、 **aws configure** コマンドを実行し、そのリージョンに適した値に変更する必要があります。詳細については、「[ステップ 1: CodeCommit の初期設定](setting-up-https-unixes.md#setting-up-https-unixes-account)」を参照してください。

 OS X および macOS でリリースされているデフォルトバージョンの Git では、Keychain Access ユーティリティを使用して、生成された認証情報を保存します。セキュリティ上の理由により、CodeCommit リポジトリへのアクセス用に生成されるパスワードは一時的なものであり、約 15 分後にキーチェーンに保存されている認証情報は機能しなくなります。Git に CodeCommit でのみアクセスする場合は、以下のことをお試しください。

1. ターミナルで **git config** コマンドを実行し、Keychain Access ユーティリティが定義されている Git 設定ファイル (`gitconfig`) を見つけます。ローカルシステムおよび設定によっては、複数の `gitconfig` ファイルが存在する場合があります。

   ```
   git config -l --show-origin | grep credential
   ```

   このコマンドの出力で、次のような結果を検索します。

   ```
   file:/path/to/gitconfig  credential.helper=osxkeychain
   ```

   この行の先頭に示されているファイルが、編集する必要がある Git 設定ファイルです。

1. Git 設定ファイルを編集するには、プレーンテキストエディタを使用するか、次のコマンドを実行します。

   ```
   nano /usr/local/git/etc/gitconfig
   ```

1. 次のいずれかの方法を使用して、設定を変更します。
   + `helper = osxkeychain` が含まれている認証情報セクションをコメントアウトまたは削除します。例:

     ```
     # helper = osxkeychain
     ```
   + `aws credential helper` と `osxkeychain` の両方の認証情報ヘルパーセクション更新して内容を持たせます。例えば、`osxkeychain` を使用して GitHub に認証する場合:

     ```
     [credential "https://git-codecommit.us-east-1.amazonaws\.com"]
       helper = !aws --profile CodeCommitProfile codecommit credential-helper $@
       UseHttpPath = true
     [credential "https://github.com"]
       helper = osxkeychain
     ```

     この設定の場合、Git は、リモートホストが "`osxkeychain`" に一致したときに `https://github.com` ヘルパーを使用し、リモートホストが "`https://git-codecommit\.us-east-1\.amazonaws.com`" に一致したときに認証情報ヘルパーを使用します。
   + 認証情報ヘルパーの前に空の文字列ヘルパーを含めます。例えば、*CodeCommitProfile* という名前のプロファイルを CLI で使用するときに `osxkeychain` ヘルパーを使用しない場合:

     ```
     [credential]
       helper =
       helper = !aws --profile CodeCommitProfile codecommit credential-helper $@
       UseHttpPath = true
     ```
**ヒント**  
すべてのプロファイルを除外する場合は、空の文字列ヘルパー行の後の行を、CodeCommit と一致しないように設定することもできます。  

     ```
     helper = !aws codecommit credential-helper $@
     ```

   または、Keychain Access ユーティリティを引き続き使用して他の Git リポジトリの認証情報をキャッシュする場合は、行をコメントアウトする代わりにヘッダーを変更します。たとえば、GitHub の認証情報のキャッシュを許可するには、次のようにヘッダーを変更できます。

   ```
   [credential "https://github.com"]
      helper = osxkeychain
   ```

Git を使用して他のリポジトリにアクセスする場合は、CodeCommit リポジトリの認証情報が提供されないように、Keychain Access ユーティリティを設定できます。Keychain Access ユーティリティを設定するには、以下のように行います。

1. Keychain Access ユーティリティを開きます。(Finder を使用して位置を指定できます)

1. *us-east-2* を検索`git-codecommit.us-east-2.amazonaws.com`し、リポジトリが存在する AWS リージョン に置き換えます。行をハイライト表示し、コンテキスト (右クリック) メニューを開いてから、[**Get Info**] を選択します。

1. [**Access Control**] タブを選択します。

1. [**Confirm before allowing access**] で、[`git-credential-osxkeychain`] を選択し、マイナス記号を選択してリストから削除します。
**注記**  
リストから `git-credential-osxkeychain` を削除すると、Git コマンドを実行するたびにダイアログボックスが表示されます。[**Deny**] を選択して続行します。ポップアップが不要な場合は、以下のように行います。  
HTTPS で認証情報ヘルパーの代わりに SSH または Git 認証情報を使用して CodeCommit に接続する 詳細については、「[Linux、macOS、または Unix での SSH 接続の場合](setting-up-ssh-unixes.md)」および「[Git 認証情報を使用した HTTPS ユーザーのセットアップ](setting-up-gc.md)」を参照してください。
Keychain Access ユーティリティで、`git-codecommit.us-east-2.amazonaws.com` の [**Access Control**] (アクセスコントロール) タブから、[**Allow all applications to access this item (access to this item is not restricted)**] (すべてのアプリケーションがこのアイテムにアクセスすることを許可 (このアイテムへのアクセスは制限されない)) オプションを選択します。これにより、ポップアップは表示されませんが、認証情報はやがて無効になり (およそ 15 分後)、403 エラーメッセージが表示されます。この場合、キーチェーンアイテムを削除して機能を復元する必要があります。
デフォルトでキーチェーンを使用しない Git バージョンをインストールします。
キーチェーンアイテムを削除するスクリプトソリューションを検討してください。スクリプトソリューションのコミュニティで作成されたサンプルを表示するには、[製品およびサービスの統合](integrations.md) の [OS X 認証ストアのキャッシュされた認証情報を定期的に削除する Mac OS X スクリプト](integrations.md#integrations-community-code)を参照してください。

Git で Keychain Access ユーティリティを完全に使用しないように、osxkeychain が Git で認証情報ヘルパーとして使用されないように設定することができます。たとえば、ターミナルを開いて `git config --system credential.helper` コマンドを実行し、`osxkeychain` が返される場合、Git は Keychain Access ユーティリティを使用するように設定されています。これを変更するには、次のコマンドを実行します。

```
git config --system --unset credential.helper
```

`--system` オプションを指定してこのコマンドを実行すると、すべてのユーザーに対して Git の動作が変更されるため、他のユーザーに意図しない結果が生じるか、CodeCommit だけでなく他のリポジトリサービスを使用している場合は、他のリポジトリにも同様の結果が生じることがある点に注意してください。また、このアプローチでは、`sudo` の使用が必要になり、この変更を適用するための十分なアクセス許可がお客様のアカウントに付与されていない場合があります。このコマンドが正常に適用されていることを確認するには、`git config --system credential.helper` コマンドを再度実行します。詳細については、「[Git のカスタマイズ - Git の設定](https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration)」および「[Stack Overflow ｍに関するこの記事](https://stackoverflow.com/questions/16052602/disable-git-credential-osxkeychain)」を参照してください。

## Git for Windows: Git for Windows をインストールしましたが、リポジトリへのアクセスが拒否されます (403)
<a name="troubleshooting-windowshttps"></a>

**問題:** Windows で、認証情報ヘルパーによって認証情報が正常にアクセスまたは使用されていないようです。原因としてさまざまな問題が考えられます。
+  AWS CLI は、リポジトリが存在する AWS リージョン とは異なる 用に設定されています。
+ デフォルトでは、Git for Windows は、認証情報ヘルパーを使用する CodeCommit 接続と互換性のない Git AWS 認証情報マネージャーユーティリティをインストールします。インストールすると、認証情報ヘルパーが と共にインストール AWS CLI され、CodeCommit への接続用に設定されていても、リポジトリへの接続が失敗します。
+ Git for Windows の一部のバージョンは、「[RFC 2617](https://tools.ietf.org/html/rfc2617#page-5)」および「[RFC 4559](https://tools.ietf.org/html/rfc4559#page-2)」との完全な互換性がない場合があります。これにより、Git 認証情報と AWS CLIに含まれている認証情報ヘルパーの両方で問題が生じることがあります。詳細については、「[バージョン 2.11.0(3) でユーザー名/パスワードの入力画面が表示されない](https://github.com/git-for-windows/git/issues/1034)」を参照してください。

**解決方法:** 
+ に含まれている認証情報ヘルパーを使用しようとする場合は AWS CLI、認証情報ヘルパーを使用する代わりに、HTTPS 経由で Git 認証情報を使用して接続することを検討してください。IAM ユーザーに設定されている Git 認証情報は、 の認証情報ヘルパーとは異なり、Windows 用 Git 認証情報マネージャーと互換性があります AWS CodeCommit詳細については、「[Git 認証情報を使用した HTTPS ユーザーのセットアップ](setting-up-gc.md)」を参照してください。

  認証情報ヘルパーを使用する場合、 が正しく設定 AWS CLI されているかどうかを確認するには AWS リージョン、 **aws configure** コマンドを実行し、表示される情報を確認します。CodeCommit リポジトリが に示されているもの AWS リージョン とは異なる にある場合は AWS CLI、 **aws configure** コマンドを実行し、そのリージョンに適した値に変更する必要があります。詳細については、「[ステップ 1: CodeCommit の初期設定](setting-up-https-windows.md#setting-up-https-windows-account)」を参照してください。
+ 可能な場合は、Git for Windows をアンインストールしてから再インストールします。Git for Windows をインストールする際、Git 認証情報マネージャーユーティリティをインストールするオプションのチェックボックスをオフにします。この認証情報マネージャーは、 の認証情報ヘルパーとは互換性がありません AWS CodeCommit Git 認証情報マネージャー、または別の認証情報管理ユーティリティをインストール済みで、アンインストールしない場合は、次のように `.gitconfig` ファイルを変更し、CodeCommit の特定の認証情報管理を追加します。

  1. [**Control Panel**] (コントロールパネル) を開き、[**Credential Manager**] (認証情報マネージャー) を選択して、CodeCommit の保存された認証情報を削除します。

  1. Notepad など、任意のプレーンテキストエディタで `.gitconfig` ファイルを開きます。
**注記**  
複数の Git プロファイルを操作する場合は、ローカルとグローバルの `.gitconfig` ファイルを両方使用します。必ず、編集するファイルが正しいことを確認します。

  1. ここで次のコードを `.gitconfig` ファイルに追加します。

     ```
     [credential "https://git-codecommit.*.amazonaws.com"]
         helper = !aws codecommit credential-helper $@ 
         UseHttpPath = true
     ```

  1. ファイルを保存したら、新しいコマンドラインセッションを開いてから、再度接続を試みます。

  また、CodeCommit リポジトリに接続する AWS CodeCommit ときに 認証情報ヘルパーを使用し、GitHub リポジトリなどの他のホストされたリポジトリに接続するときに別の認証情報管理システムを使用する場合にも、このアプローチを使用できます。

  デフォルトとして使用する認証情報ヘルパーをリセットするには、**--system** コマンドの実行時に **--global** オプションを使用します (**--local** や **git config** は使用しません)。
+ Windows コンピュータで Git 認証情報を使用している場合、RFC 非準拠に関する問題を回避するには、Git 認証情報のユーザー名を接続文字列の一部として含めることができます。例えば、この問題を回避するには、米国東部 (オハイオ) リージョンのリポジトリ (*MyDemoRepo*) のクローンを作成します。

  ```
  git clone https://Your-Git-Credential-Username@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
  ```
**注記**  
Git 認証情報のユーザー名に `@` 文字が含まれていると、このアプローチは機能しません。必ず、この文字の URL エンコード (URL エスケープまたは[パーセントエンコード](https://en.wikipedia.org/wiki/Percent-encoding)とも呼ばれる) を行ってから使用します。