🎉
【備忘録】AWS CLIが正しく設定されているか確認する方法
AWS CLIが正しく設定されているか確認する方法
はじめに
AWS CLIを使用してAWSリソースを管理する際、まず最初に確認すべきことは「AWS CLIが正しく設定されているか」です。設定が不完全だと、TerraformやAWS SDKを使用した開発・デプロイ作業で予期しないエラーが発生する可能性があります。
本記事では、AWS CLIの設定状況を段階的に確認する方法と、よくある問題の解決策を紹介します。
目次
AWS CLIのインストール確認
まず、AWS CLIがインストールされているかを確認しましょう。
aws --version
期待される出力例
aws-cli/2.30.1 Python/3.13.7 Darwin/24.6.0 exe/arm64
インストールされていない場合
macOSの場合:
# Homebrewを使用
brew install awscli
# または公式インストーラーを使用
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
認証情報の設定確認
次に、AWS認証情報(Access Key ID、Secret Access Key)が設定されているかを確認します。
aws configure list
正常な設定例
Name Value Type Location
---- ----- ---- -------
profile <not set> None None
access_key ****************GH5X shared-credentials-file
secret_key ****************VRJK shared-credentials-file
region ap-northeast-1 config-file ~/.aws/config
設定されていない場合
以下のコマンドで設定を行います:
aws configure
設定時に必要な情報:
- AWS Access Key ID
- AWS Secret Access Key
- Default region name
- Default output format
リージョン設定の確認
リージョンが正しく設定されているかを確認します。
aws configure get region
期待される出力例
ap-northeast-1
リージョンの変更
aws configure set region ap-northeast-1
認証テストの実行
設定した認証情報が正しく動作するかをテストします。
aws sts get-caller-identity
正常な出力例
{
"UserId": "AIDARLWERPWG5TQK572GV",
"Account": "093827726733",
"Arn": "arn:aws:iam::093827726733:user/Hirotaka"
}
エラーが発生した場合
以下のようなエラーが表示される場合があります:
# 認証情報が無効
An error occurred (InvalidUserID.NotFound) when calling the GetCallerIdentity operation: The security token included in the request is invalid.
# 権限不足
An error occurred (AccessDenied) when calling the GetCallerIdentity operation: User is not authorized to perform: sts:GetCallerIdentity
プロファイル設定の確認
複数のAWSアカウントを使用している場合、プロファイル設定を確認します。
# 利用可能なプロファイル一覧
aws configure list-profiles
# 特定のプロファイルの設定確認
aws configure list --profile <profile-name>
# プロファイルを指定して認証テスト
aws sts get-caller-identity --profile <profile-name>
よくある問題と解決策
1. 認証情報が見つからない
エラー例:
Unable to locate credentials. You can configure credentials by running "aws configure".
解決策:
# 認証情報を設定
aws configure
# または環境変数で設定
export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key
2. リージョンが設定されていない
エラー例:
You must specify a region. You can also configure your region by running "aws configure".
解決策:
# リージョンを設定
aws configure set region ap-northeast-1
# または環境変数で設定
export AWS_DEFAULT_REGION=ap-northeast-1
3. 権限不足
エラー例:
AccessDenied: User is not authorized to perform: sts:GetCallerIdentity
解決策:
- IAMユーザーに適切な権限が付与されているか確認
- 必要に応じてIAMポリシーを追加
4. プロファイルの競合
問題:
複数のプロファイルが設定されており、どれが使用されているかわからない
解決策:
# 現在のプロファイルを確認
aws configure list
# デフォルトプロファイルを明示的に指定
aws configure set profile.default.region ap-northeast-1
設定の最適化
1. セキュリティの向上
# 認証情報ファイルの権限を制限
chmod 600 ~/.aws/credentials
chmod 600 ~/.aws/config
2. 環境変数の活用
開発環境では環境変数を使用することを推奨:
# .envファイルの例
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
AWS_DEFAULT_REGION=ap-northeast-1
3. プロファイルの整理
# プロファイル別の設定例
aws configure set profile.dev.region ap-northeast-1
aws configure set profile.prod.region ap-northeast-1
設定確認の自動化
設定確認を自動化するスクリプト例:
#!/bin/bash
# aws-cli-check.sh
echo "🔍 AWS CLI設定確認を開始します..."
# 1. AWS CLIのインストール確認
if ! command -v aws &> /dev/null; then
echo "❌ AWS CLIがインストールされていません"
exit 1
fi
echo "✅ AWS CLIがインストールされています: $(aws --version)"
# 2. 認証情報の確認
if ! aws sts get-caller-identity &> /dev/null; then
echo "❌ AWS認証情報が正しく設定されていません"
exit 1
fi
echo "✅ AWS認証情報が正しく設定されています"
# 3. リージョンの確認
region=$(aws configure get region)
if [ -z "$region" ]; then
echo "❌ リージョンが設定されていません"
exit 1
fi
echo "✅ リージョンが設定されています: $region"
# 4. アカウント情報の表示
account_info=$(aws sts get-caller-identity)
echo "📋 アカウント情報:"
echo "$account_info" | jq '.'
echo "🎉 AWS CLI設定確認が完了しました!"
まとめ
AWS CLIの設定確認は、AWSを使用した開発・運用の基盤となる重要な作業です。本記事で紹介した手順に従って確認することで以下のメリットが得られます:
- 早期エラー検出: 設定問題を事前に発見
- 開発効率向上: トラブルシューティング時間の削減
- セキュリティ向上: 適切な権限設定の確認
- 運用安定性: 予期しないエラーの防止
定期的に設定確認を行うことで、安定したAWS環境での開発・運用が可能になります。
Discussion