AWS CLIログイン完全ガイド:5つの認証方法と環境構築のベストプラクティス

AWS CLIログインの基礎知識

AWS CLIとは:基本的な概念と重要性

AWS CLI(Command Line Interface)は、AWSのサービスをコマンドラインから操作するためのツールです。GUIベースのマネジメントコンソールと比較して、以下のような特徴と利点があります:

AWS CLIの主な特徴

  • コマンドラインからAWSリソースを制御可能
  • スクリプトによる自動化が容易
  • 高度なリソース管理機能を提供
  • 複数環境での一貫した操作が可能

AWS CLIが重要である理由

  1. 効率的な運用管理
  • 複数のリソースを一括で操作可能
  • 反復作業の自動化が容易
  • バッチ処理やスクリプト化による時間節約
  1. Infrastructure as Code(IaC)との親和性
  • CloudFormationやTerraformとの連携
  • バージョン管理システムとの統合
  • 環境の再現性向上
  1. セキュリティ管理の強化
  • きめ細かなアクセス制御
  • 監査ログの取得と分析
  • 認証情報の一元管理

AWS CLIをインストールする前に知っておくべきこと

前提条件

  1. AWSアカウントの準備
  • アクティブなAWSアカウント
  • 適切な権限を持つIAMユーザー
  • アクセスキーとシークレットキー
  1. システム要件
  • Python 3.7以上
  • Windows/Mac/Linuxいずれかのサポート対象OS
  • インターネット接続環境

重要な考慮事項

  1. セキュリティ
  • 認証情報の安全な管理
  • 最小権限の原則に基づく設定
  • 定期的な認証情報のローテーション
  1. ネットワーク
  • プロキシ設定の確認
  • ファイアウォールルールの確認
  • 帯域幅の考慮
  1. バージョン管理
  • AWS CLIのバージョン確認方法
  • 互換性の確認
  • アップデート戦略の検討

AWS CLIの活用シーン

  1. 日常的な運用管理
   # S3バケットの一覧表示
   aws s3 ls

   # EC2インスタンスの状態確認
   aws ec2 describe-instances
  1. 自動化とスクリプティング
   # バックアップスクリプトの例
   aws s3 sync /local/path s3://my-bucket/backup/

   # リソースの一括操作
   aws ec2 start-instances --instance-ids i-1234567890abcdef0
  1. CI/CDパイプライン
   # デプロイメントの自動化
   aws deploy create-deployment \
     --application-name MyApp \
     --deployment-group-name MyDeployGroup

この基礎知識を踏まえた上で、次のセクションではAWS CLIの具体的な環境構築とセットアップ手順について説明していきます。

AWS CLIの環境構築とセットアップ手順

AWS CLIのインストール方法(Windows/Mac/Linux)

Windowsでのインストール

  1. MSIインストーラーを使用する方法
   # 64ビット版Windowsの場合
   msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

   # インストール確認
   aws --version
  1. PowerShellでのインストール
   # インストーラーのダウンロード
   Invoke-WebRequest -Uri "https://awscli.amazonaws.com/AWSCLIV2.msi" -OutFile "AWSCLIV2.msi"

   # インストールの実行
   Start-Process msiexec.exe -Args "/i AWSCLIV2.msi /quiet" -Wait

macOSでのインストール

  1. Homebrewを使用する方法(推奨)
   # Homebrewのインストール(未導入の場合)
   /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

   # AWS CLIのインストール
   brew install awscli
  1. パッケージインストーラーを使用する方法
   # インストーラーのダウンロードと解凍
   curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
   sudo installer -pkg AWSCLIV2.pkg -target /

Linuxでのインストール

  1. Ubuntu/Debian系
   # 必要なパッケージのインストール
   sudo apt-get update
   sudo apt-get install -y unzip curl

   # AWS CLIのインストール
   curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
   unzip awscliv2.zip
   sudo ./aws/install
  1. Amazon Linux/RHEL系
   # yumを使用したインストール
   sudo yum update -y
   sudo yum install -y aws-cli

初回セットアップで必要な設定項目

1. 認証情報の設定

# 基本的な設定(対話形式)
aws configure

# 直接設定する場合
aws configure set aws_access_key_id YOUR_ACCESS_KEY
aws configure set aws_secret_access_key YOUR_SECRET_KEY
aws configure set region ap-northeast-1
aws configure set output json

2. プロファイルの設定

# 名前付きプロファイルの作成
aws configure --profile development

# 特定のプロファイルを使用してコマンドを実行
aws s3 ls --profile development

3. 環境変数の設定

  1. 一時的な設定(セッション中のみ有効)
   # Windows (PowerShell)
   $env:AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY"
   $env:AWS_SECRET_ACCESS_KEY="YOUR_SECRET_KEY"
   $env:AWS_DEFAULT_REGION="ap-northeast-1"

   # Linux/macOS
   export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY"
   export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_KEY"
   export AWS_DEFAULT_REGION="ap-northeast-1"
  1. 永続的な設定
   # ~/.bashrc, ~/.zshrc, または ~/.profile に追加
   export AWS_DEFAULT_PROFILE=development
   export AWS_DEFAULT_REGION=ap-northeast-1

4. 動作確認

# バージョン確認
aws --version

# 認証情報の確認
aws sts get-caller-identity

# 設定の確認
aws configure list

セットアップのトラブルシューティング

  1. よくあるエラーと対処方法
  • AWS was not able to validate the provided credentials
    → 認証情報が正しいか確認
  • Unable to locate credentials
    → aws configure の実行または環境変数の設定を確認
  • The config profile (xxx) could not be found
    → プロファイル名の確認と再設定
  1. 設定ファイルの場所
   Windows: %UserProfile%\.aws\
   Linux/macOS: ~/.aws/
  1. パーミッション設定
   # Linux/macOSでの権限設定
   chmod 600 ~/.aws/credentials
   chmod 600 ~/.aws/config

この環境構築とセットアップが完了したら、次のセクションで説明する各種認証方法を実践する準備が整います。

AWS CLIログインの5つの認証方法を解説

1. アクセスキーとシークレットキーによる認証

最も基本的な認証方法で、開発環境やテスト環境で広く使用されています。

設定手順

  1. IAMユーザーでアクセスキーを作成
   # 基本的な設定
   aws configure
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [None]: ap-northeast-1
   Default output format [None]: json
  1. 設定ファイルでの管理
   # ~/.aws/credentials
[default]

aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY # ~/.aws/config

[default]

region = ap-northeast-1 output = json

セキュリティのベストプラクティス

  • アクセスキーは定期的にローテーション
  • 本番環境では使用を避ける
  • キーを誤ってコミットしないよう.gitignoreに設定

2. IAMロールを使用した認証

EC2インスタンスやECSタスクなど、AWS環境内でのサービス間認証に最適です。

IAMロールの設定手順

  1. ロールの作成
   # ロールの作成
   aws iam create-role \
     --role-name MyServiceRole \
     --assume-role-policy-document file://trust-policy.json

   # ポリシーのアタッチ
   aws iam attach-role-policy \
     --role-name MyServiceRole \
     --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
  1. EC2インスタンスへの適用
   # インスタンス作成時にロールを指定
   aws ec2 run-instances \
     --image-id ami-12345678 \
     --instance-type t2.micro \
     --iam-instance-profile Name=MyServiceRole

メリット

  • 認証情報の手動管理が不要
  • 自動的なクレデンシャルローテーション
  • きめ細かなアクセス制御が可能

3. AWS Single Sign-On (SSO)による認証

大規模組織での認証管理に適しており、既存のIDプロバイダーとの統合が可能です。

SSO設定手順

  1. AWS SSOの設定
   # SSO設定の初期化
   aws sso configure

   # SSOログイン
   aws sso login --profile my-sso-profile
  1. 設定ファイルの例
   # ~/.aws/config
[profile my-sso-profile]

sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = ap-northeast-1 sso_account_id = 123456789012 sso_role_name = ReadOnly region = ap-northeast-1 output = json

利点

  • シングルサインオンによる利便性
  • 中央集権的な認証管理
  • セッション期限の自動管理

4. 一時的な認証情報を使用した認証

短期的なアクセスや特定のタスクに対して、制限された権限を付与する場合に使用します。

実装手順

  1. 一時的な認証情報の取得
   # STSを使用した一時的な認証情報の取得
   aws sts get-session-token \
     --duration-seconds 3600 \
     --serial-number arn:aws:iam::123456789012:mfa/user \
     --token-code 123456
  1. 認証情報の設定
   # 環境変数として設定
   export AWS_ACCESS_KEY_ID="ASIA..."
   export AWS_SECRET_ACCESS_KEY="..."
   export AWS_SESSION_TOKEN="..."

ユースケース

  • スクリプトでの一時的な実行権限
  • 外部委託者への一時アクセス提供
  • 特定プロジェクトでの限定的な権限付与

5. MFAを使用した多要素認証

セキュリティ要件の高い環境で必須となる認証方式です。

MFA設定手順

  1. MFAデバイスの登録
   # 仮想MFAデバイスの作成
   aws iam create-virtual-mfa-device \
     --virtual-mfa-device-name MyMFADevice \
     --outfile /path/to/QRCode.png \
     --bootstrap-method QRCodePNG

   # MFAデバイスの有効化
   aws iam enable-mfa-device \
     --user-name myuser \
     --serial-number arn:aws:iam::123456789012:mfa/MyMFADevice \
     --authentication-code1 123456 \
     --authentication-code2 789012
  1. MFA認証を使用したセッションの開始
   # MFAトークンを使用したセッション開始
   aws sts get-session-token \
     --serial-number arn:aws:iam::123456789012:mfa/user \
     --token-code 123456

セキュリティ強化のポイント

  • MFA必須のIAMポリシー設定
  • デバイス紛失時の対応手順の整備
  • 定期的なMFAデバイスの検証

これらの認証方法は、使用環境や要件に応じて適切に選択・組み合わせることで、セキュアなAWS CLI環境を実現できます。次のセクションでは、これらの認証方法を使用する際のトラブルシューティングについて説明します。

AWS CLIログインのトラブルシューティング

よくあるエラーメッセージとその解決方法

1. 認証情報関連のエラー

  1. Unable to locate credentials
   # エラーの例
   Unable to locate credentials. You can configure credentials by running "aws configure".

解決方法:

   # 認証情報の設定確認
   aws configure list

   # 環境変数の確認
   echo $AWS_ACCESS_KEY_ID
   echo $AWS_SECRET_ACCESS_KEY

   # 必要に応じて再設定
   aws configure
  1. InvalidClientTokenId
   # エラーの例
   An error occurred (InvalidClientTokenId) when calling the XXX operation: The security token included in the request is invalid.

解決方法:

   # アクセスキーの有効性確認
   aws sts get-caller-identity

   # 認証情報の再設定
   aws configure set aws_access_key_id NEW_ACCESS_KEY
   aws configure set aws_secret_access_key NEW_SECRET_KEY
  1. ExpiredToken
   # エラーの例
   An error occurred (ExpiredToken) when calling the XXX operation: The security token included in the request is expired

解決方法:

   # 一時的な認証情報の更新
   aws sts get-session-token \
     --duration-seconds 3600 \
     --serial-number arn:aws:iam::123456789012:mfa/user \
     --token-code 123456

2. 設定関連のエラー

  1. NoRegionError
   # エラーの例
   botocore.exceptions.NoRegionError: You must specify a region.

解決方法:

   # リージョンの設定
   aws configure set region ap-northeast-1

   # または環境変数で設定
   export AWS_DEFAULT_REGION=ap-northeast-1
  1. ProfileNotFound
   # エラーの例
   botocore.exceptions.ProfileNotFound: The config profile (xxx) could not be found

解決方法:

   # 利用可能なプロファイルの確認
   aws configure list-profiles

   # プロファイルの作成
   aws configure --profile new-profile

認証情報の更新方法と期限切れ対策

1. 定期的な認証情報の更新

# アクセスキーの作成日確認
aws iam list-access-keys --query 'AccessKeyMetadata[*].[AccessKeyId,CreateDate]'

# 新しいアクセスキーの作成
aws iam create-access-key --user-name TARGET_USER

# 古いアクセスキーの無効化
aws iam update-access-key \
  --access-key-id OLD_ACCESS_KEY_ID \
  --status Inactive \
  --user-name TARGET_USER

# 古いアクセスキーの削除
aws iam delete-access-key \
  --access-key-id OLD_ACCESS_KEY_ID \
  --user-name TARGET_USER

2. 自動更新の設定

  1. スクリプトによる定期更新
   #!/bin/bash

   # 90日以上経過したキーを検出
   OLD_KEYS=$(aws iam list-access-keys --query \
     'AccessKeyMetadata[?DateDiff(now(),CreateDate) > `7776000`].AccessKeyId' \
     --output text)

   # 新しいキーの作成と古いキーの削除
   if [ ! -z "$OLD_KEYS" ]; then
     NEW_KEY=$(aws iam create-access-key --output json)
     echo $NEW_KEY > ~/.aws/new_credentials

     # 古いキーの削除
     for key in $OLD_KEYS; do
       aws iam delete-access-key --access-key-id $key
     done
   fi

3. トラブル防止のベストプラクティス

  1. 認証情報の管理
  • 複数環境での認証情報の分離
  • セキュアな保存場所の使用
  • アクセスキーの定期的なローテーション
  1. 監視とアラート
   # アクセスキーの使用状況監視
   aws cloudwatch get-metric-statistics \
     --namespace AWS/Usage \
     --metric-name CallCount \
     --dimensions Service=IAM,Type=API,Resource=GetUser \
     --start-time 2024-01-20T00:00:00 \
     --end-time 2024-01-27T00:00:00 \
     --period 3600 \
     --statistics Sum
  1. 定期的な監査
   # 未使用のアクセスキーの検出
   aws iam get-credential-report
   aws iam get-credential-report --query 'Content' --output text | base64 -d

これらのトラブルシューティング手法を理解し、適切に実施することで、AWS CLIの認証関連の問題を効率的に解決できます。また、予防的な対策を講じることで、問題の発生自体を最小限に抑えることが可能です。

AWS CLIログインのセキュリティベストプラクティス

安全な認証情報の管理方法

1. 最小権限の原則の実装

  1. 権限の細分化
   # 特定のS3バケットへのアクセスのみを許可するポリシーの作成
   cat > s3-readonly-policy.json << EOF
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::my-bucket",
           "arn:aws:s3:::my-bucket/*"
         ]
       }
     ]
   }
   EOF

   aws iam create-policy \
     --policy-name S3ReadOnlyAccess \
     --policy-document file://s3-readonly-policy.json
  1. アクセスの制限
   # IPアドレスによるアクセス制限の設定
   cat > ip-restriction-policy.json << EOF
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "NotIpAddress": {
             "aws:SourceIp": [
               "203.0.113.0/24",
               "2001:DB8::/32"
             ]
           }
         }
       }
     ]
   }
   EOF

   aws iam put-user-policy \
     --user-name target-user \
     --policy-name IPRestriction \
     --policy-document file://ip-restriction-policy.json

2. 認証情報の安全な保存

  1. 認証情報の暗号化
   # AWS Systems Managerパラメータストアの使用
   aws ssm put-parameter \
     --name "/prod/aws/access-key" \
     --value "YOUR_ACCESS_KEY" \
     --type SecureString

   # 認証情報の取得
   aws ssm get-parameter \
     --name "/prod/aws/access-key" \
     --with-decryption
  1. 認証情報の分離
   # 環境別の認証情報プロファイル設定
   aws configure set \
     aws_access_key_id AKIAIOSFODNN7EXAMPLE \
     --profile production

   aws configure set \
     region ap-northeast-1 \
     --profile production

本番環境での推奨設定

1. MFAの強制適用

# MFA必須のIAMポリシー
cat > require-mfa-policy.json << EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "Bool": {
          "aws:MultiFactorAuthPresent": "true"
        }
      }
    }
  ]
}
EOF

aws iam create-policy \
  --policy-name RequireMFA \
  --policy-document file://require-mfa-policy.json

2. セッション管理の強化

# セッション期間の制限設定
aws iam update-role \
  --role-name ProductionRole \
  --max-session-duration 3600

# 一時的な認証情報の取得
aws sts assume-role \
  --role-arn arn:aws:iam::123456789012:role/ProductionRole \
  --role-session-name PROD-SESSION \
  --duration-seconds 3600

3. 監査とモニタリングの設定

  1. CloudTrailの有効化
   # CloudTrailの作成
   aws cloudtrail create-trail \
     --name prod-audit-trail \
     --s3-bucket-name my-audit-logs \
     --is-multi-region-trail \
     --enable-logging

   # ログの確認
   aws cloudtrail lookup-events \
     --lookup-attributes AttributeKey=EventName,AttributeValue=ConsoleLogin
  1. アラートの設定
   # CloudWatchアラームの作成
   aws cloudwatch put-metric-alarm \
     --alarm-name unauthorized-api-calls \
     --metric-name UnauthorizedAPICallCount \
     --namespace AWS/CloudTrail \
     --statistic Sum \
     --period 300 \
     --threshold 1 \
     --comparison-operator GreaterThanThreshold \
     --evaluation-periods 1 \
     --alarm-actions arn:aws:sns:region:account-id:topic-name

4. 定期的なセキュリティ評価

  1. IAM資格情報レポートの生成
   # レポートの生成
   aws iam generate-credential-report

   # レポートの取得と分析
   aws iam get-credential-report --output text \
     --query 'Content' | base64 -d > credential-report.csv
  1. セキュリティ評価の自動化
   # AWS Config Ruleの設定
   aws configservice put-config-rule \
     --config-rule file://iam-user-mfa-enabled.json

   # コンプライアンス状態の確認
   aws configservice get-compliance-details-by-config-rule \
     --config-rule-name iam-user-mfa-enabled

これらのセキュリティベストプラクティスを適切に実装することで、AWS CLIの使用における安全性を大幅に向上させることができます。特に本番環境では、これらの設定を確実に実施し、定期的な監査とレビューを行うことが重要です。

AWS CLIログインの応用と自動化

複数のプロファイル管理テクニック

1. 環境別プロファイルの効率的な管理

# ~/.aws/config の設定例
[default]

region = ap-northeast-1 output = json

[profile development]

region = ap-northeast-1 output = json role_arn = arn:aws:iam::123456789012:role/DevRole source_profile = default

[profile staging]

region = ap-northeast-1 output = json role_arn = arn:aws:iam::123456789012:role/StagingRole source_profile = default

[profile production]

region = ap-northeast-1 output = json role_arn = arn:aws:iam::123456789012:role/ProductionRole source_profile = default mfa_serial = arn:aws:iam::123456789012:mfa/user

2. プロファイル切り替えの自動化

# プロファイル切り替えスクリプト
#!/bin/bash

switch_profile() {
  if [ -z "$1" ]; then
    echo "Usage: switch_profile [development|staging|production]"
    return 1
  fi

  export AWS_PROFILE=$1

  if [ "$1" = "production" ]; then
    # MFAトークンの要求
    read -p "Enter MFA token: " token

    # 一時的な認証情報の取得
    credentials=$(aws sts get-session-token --serial-number arn:aws:iam::123456789012:mfa/user --token-code $token)

    export AWS_ACCESS_KEY_ID=$(echo $credentials | jq -r .Credentials.AccessKeyId)
    export AWS_SECRET_ACCESS_KEY=$(echo $credentials | jq -r .Credentials.SecretAccessKey)
    export AWS_SESSION_TOKEN=$(echo $credentials | jq -r .Credentials.SessionToken)
  fi

  echo "Switched to profile: $1"
  aws sts get-caller-identity
}

alias dev='switch_profile development'
alias stg='switch_profile staging'
alias prod='switch_profile production'

CIパイプラインでの認証管理

1. GitHub Actionsでの設定例

# .github/workflows/deploy.yml
name: AWS Deployment
on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          role-to-assume: arn:aws:iam::123456789012:role/GithubActionsRole
          aws-region: ap-northeast-1

      - name: Deploy to AWS
        run: |
          aws s3 sync ./dist s3://my-bucket/
          aws cloudfront create-invalidation --distribution-id XXXXX

2. AWS IAMロールの設定

# OpenIDコネクトプロバイダーの作成
aws iam create-open-id-connect-provider \
  --url https://token.actions.githubusercontent.com \
  --client-id-list "sts.amazonaws.com" \
  --thumbprint-list "6938fd4d98bab03faadb97b34396831e3780aea1"

# GitHub Actions用ロールの作成
cat > trust-policy.json << EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::123456789012:oidc-provider/token.actions.githubusercontent.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringLike": {
          "token.actions.githubusercontent.com:sub": "repo:organization/repository:*"
        }
      }
    }
  ]
}
EOF

aws iam create-role \
  --role-name GithubActionsRole \
  --assume-role-policy-document file://trust-policy.json

3. 自動デプロイメントの設定

# デプロイメントスクリプト
#!/bin/bash

deploy_to_environment() {
  local env=$1
  local profile="$env"

  # 環境変数の設定
  export AWS_PROFILE=$profile

  # アプリケーションのデプロイ
  aws s3 sync ./dist "s3://my-app-$env" \
    --delete \
    --cache-control "max-age=31536000"

  # CloudFrontの更新
  aws cloudfront create-invalidation \
    --distribution-id $(aws ssm get-parameter --name "/$env/cloudfront/distribution-id" --query Parameter.Value --output text) \
    --paths "/*"

  # ECSサービスの更新
  aws ecs update-service \
    --cluster "my-cluster-$env" \
    --service "my-service-$env" \
    --force-new-deployment
}

# 使用例
# ./deploy.sh staging
deploy_to_environment "$1"

4. 認証情報のローテーション自動化

# 認証情報の自動ローテーションスクリプト
#!/bin/bash

rotate_credentials() {
  local profile=$1

  # 現在のアクセスキーの取得
  current_key=$(aws iam list-access-keys \
    --profile $profile \
    --query 'AccessKeyMetadata[0].AccessKeyId' \
    --output text)

  # 新しいアクセスキーの作成
  new_key=$(aws iam create-access-key \
    --profile $profile \
    --query 'AccessKey.[AccessKeyId,SecretAccessKey]' \
    --output text)

  # 新しい認証情報の設定
  access_key_id=$(echo $new_key | cut -d' ' -f1)
  secret_key=$(echo $new_key | cut -d' ' -f2)

  aws configure set \
    aws_access_key_id $access_key_id \
    --profile $profile

  aws configure set \
    aws_secret_access_key $secret_key \
    --profile $profile

  # 古いキーの削除
  aws iam delete-access-key \
    --profile $profile \
    --access-key-id $current_key

  echo "Credentials rotated successfully for profile: $profile"
}

# 90日ごとに自動ローテーション
if [ $(aws iam list-access-keys --query 'AccessKeyMetadata[0].CreateDate' --output text) \
     -lt $(date -d '90 days ago' +%Y-%m-%d) ]; then
  rotate_credentials "default"
fi

これらの応用テクニックと自動化スクリプトを活用することで、AWS CLIの認証管理をより効率的かつセキュアに行うことができます。特にCI/CD環境では、これらの自動化が重要な役割を果たします。