目次

AWS CLI 詳細ガイド 2026

インストールから認証・出力・自動化・関連 CLI まで

AWS CLI は、ターミナルから AWS API を呼び出す公式コマンドラインツールです。本稿は AWS CLI v2 を前提に、設定・認証、グローバルオプション、JMESPathサービス別コマンド例ユースケース別レシピ、シェル連携、AWS 公式/準公式のその他 CLI、運用上の注意をまとめます。

公式: https://docs.aws.amazon.com/cli/latest/userguide/
引数の正は aws <service> <op> help と上記を優先してください。


目次

  1. 概要とバージョン
  2. インストールと更新
  3. 設定ファイルの構造
  4. 認証のパターン
  5. コマンドの基本形
  6. グローバルオプション
  7. パラメータの渡し方と JSON / バイナリ入力
  8. 出力形式と JMESPath
  9. ページネーションと Waiter
  10. サービス別コマンド例(一覧寄り)
  11. ユースケース別レシピ
  12. シェル・jq・ループ・入力ファイル
  13. デバッグ・ログ・終了コード
  14. セキュリティと運用のベストプラクティス
  15. AWS 関連のその他 CLI ツール
  16. 参考リンク

1. 概要とバージョン

項目 内容
AWS CLI v1 メンテナンスモード。新規採用は非推奨。
AWS CLI v2 現行。単体バンドル、SSO 統合など。
確認 aws --version
aws --version

2. インストールと更新

2.1 macOS

方法 備考
公式 .pkg User Guide の手順に従う
Homebrew brew install awscli

2.2 Linux / Windows

公式インストーラまたはパッケージマネージャ。CI では バージョン固定 を推奨。

brew upgrade awscli   # Homebrew の場合

3. 設定ファイルの構造

ファイル 役割
~/.aws/credentials アクセスキー、セッション、credential_process機密
~/.aws/config リージョン、出力、role_arn、SSO 等
aws configure --profile dev
aws sts get-caller-identity --profile dev

ロールチェーン例(config):

[profile base]
region = ap-northeast-1

[profile app-admin]
role_arn = arn:aws:iam::123456789012:role/AppAdmin
source_profile = base
region = ap-northeast-1

IAM Identity Center(SSO)構成の例:

[profile corp-dev]
sso_session = corp
sso_account_id = 123456789012
sso_role_name = Developer
region = ap-northeast-1
output = json

[sso-session corp]
sso_start_url = https://example.awsapps.com/start
sso_region = ap-northeast-1
sso_registration_scopes = sso:account:access

credential_process の例:

[profile vault-prod]
credential_process = /usr/local/bin/my-credential-helper prod
region = ap-northeast-1
output = json

configcredentials のどちらに何を書くか迷ったら、次の整理で考えると事故が減ります。

置き場所 向く内容
credentials 秘密情報、短期セッション、補助ツールが吐く認証情報
config リージョン、出力形式、ロール、SSO、CLI の振る舞い

4. 認証のパターン

方式 用途
アクセスキー ローカル/レガシー CI(ローテーション必須)
AssumeRole クロスアカウント・職務分離
IAM Identity Center(SSO) 企業ユーザー
credential_process Vault / 社内 IdP 連携
IMDS(EC2 等) インスタンスプロファイル
aws configure sso
aws sso login --profile corp

クレデンシャル解決の 優先順位 は User Guide の Configuration and credential precedence を参照。


5. コマンドの基本形

aws <サービス名> <オペレーション> [オプション…] [グローバルオプション]
aws help
aws ec2 describe-instances help

6. グローバルオプション

オプション 説明
--profile プロファイル切替
--region リージョン上書き
`–output json yaml yaml-stream text table` 出力形式
--no-cli-pager ページャ無効(CI)
--endpoint-url LocalStack 等
--no-verify-ssl 本番禁止
--debug HTTP リクエスト、再試行、署名周辺まで追う
--no-cli-auto-prompt 補完 UI を無効化。CI やスクリプトで有用
--cli-auto-prompt 対話的にパラメータ入力。慣れない操作の補助
--cli-read-timeout レスポンス読取タイムアウト秒数
--cli-connect-timeout 接続タイムアウト秒数
--ca-bundle 独自 CA バンドルを指定
--no-sign-request 署名を付けない。公開 S3 など特殊用途のみ
--cli-binary-format file:// の解釈方式を制御
環境変数 意味
AWS_PROFILE 既定プロファイル
AWS_REGION 既定リージョン
AWS_PAGER 空でページャ無効化しやすい
AWS_ACCESS_KEY_ID 短期/長期クレデンシャル
AWS_DEFAULT_OUTPUT 既定出力形式
AWS_CA_BUNDLE 既定の CA バンドル
AWS_MAX_ATTEMPTS 再試行回数の上書き
AWS_RETRY_MODE standard / adaptive など
AWS_EC2_METADATA_DISABLED IMDS 参照を止めたいとき
aws_cli_auto_prompt auto-prompt の有効化

6.1 実務でよく効くオプションの見方

場面 よく使うもの 何に効くか
手元で安全に確認 --output table, --query, --profile 見やすさと誤操作防止
CI / cron --no-cli-pager, --output json, --no-cli-auto-prompt 非対話で安定実行
社内 Proxy / 独自 CA --ca-bundle, AWS_CA_BUNDLE TLS 検証の整合
LocalStack / エミュレータ --endpoint-url 宛先切替
API が重い / 不安定 --cli-connect-timeout, --cli-read-timeout, AWS_RETRY_MODE 失敗時の挙動調整
原因調査 --debug 署名、再試行、HTTP ステータスの可視化

6.2 優先順位の考え方

ざっくり覚えるなら、コマンドライン > 環境変数 > プロファイル設定 です。つまり、

  • その場だけ変えたいものは --region--profile
  • シェルの間だけ効かせたいものは環境変数
  • 普段の既定値は ~/.aws/config

に置くと整理しやすいです。


7. パラメータの渡し方と JSON / バイナリ入力

CLI でつまずきやすいのは、AWS の API よりも シェルの quotingJSON / バイナリの渡し方 です。

7.1 文字列、配列、マップの基本

文字列 --alarm-name demo-cpu
配列 --instance-ids i-aaa i-bbb
マップ --tags Key=Env,Value=dev Key=Name,Value=web-1
JSON --cli-input-json file://input.json

7.2 file://fileb://

書き方 使いどころ
file://path.json JSON やテキストをファイルから読む
fileb://payload.bin 生バイナリをそのまま渡す

特に KMS、Lambda invoke、バイナリペイロード系では fileb:// を使うか、--cli-binary-format raw-in-base64-out を理解しておくと事故が減ります。

7.3 --cli-binary-format が必要になる場面

AWS CLI v2 では file:// の扱いが v1 と少し違うため、古い runbook をそのまま実行するとハマることがあります。

aws lambda invoke \
  --function-name my-fn \
  --payload '{"hello":"world"}' \
  --cli-binary-format raw-in-base64-out \
  /tmp/out.json

このオプションは、「JSON 文字列をそのままバイナリ入力として渡したい」系の例で特に出てきます。

7.4 --generate-cli-skeleton を先に使う

初見の API で複雑な JSON を hand-write するより、先に雛形を吐かせる方が速いことが多いです。

aws ecs create-service --generate-cli-skeleton input > create-service.json

8. 出力形式と JMESPath

--queryJMESPath。レスポンス取得のクライアント側抽出。

aws ec2 describe-instances \
  --filters "Name=instance-state-name,Values=running" \
  --query 'Reservations[].Instances[].[InstanceId,Tags[?Key==`Name`].Value|[0],Placement.AvailabilityZone]' \
  --output table
aws iam list-users --query 'Users[].UserName' --output text

注意: 大量リソースは API 側 --filters / --prefix 等で先に絞る。


8.1 よく使う JMESPath パターン

目的
配列から 1 列だけ抜く Users[].UserName
複数列を表にする DBInstances[].{Id:DBInstanceIdentifier,Class:DBInstanceClass}
条件に合う要素を絞る Functions[?Runtime==\python3.12`]`
ネストを平らにする Reservations[].Instances[].InstanceId
最初の 1 件だけ取る Tags[?Key==\Name`].Value

8.2 --query だけで頑張るべきか

判断基準はこうです。

  • AWS のレスポンスを少し整える程度なら --query
  • 複雑な集計や join に寄るなら jq
  • 件数が多いなら、まず API 側の --filters や prefix で絞る

9. ページネーションと Waiter

オプション 用途
--no-paginate 1 回目のページだけ取る
--page-size 1 API call あたりのページサイズを小さくする
--max-items 最終的にクライアントへ返す件数を制御
--starting-token 続き取得
aws ec2 wait instance-running --instance-ids i-0abc...
aws cloudformation wait stack-update-complete --stack-name mystack

9.1 --page-size--max-items の違い

ここは混同しやすいです。

オプション 効く場所 典型用途
--page-size サービス API 呼び出し単位 タイムアウト回避、1 回あたりの負荷調整
--max-items CLI が最終的に返す件数 手元確認、途中まで見たい

たとえば大量の S3 オブジェクト一覧でレスポンスが重いなら --page-size、とりあえず 20 件だけ見たいなら --max-items が合います。

9.2 Waiter が向く作業

Waiter は「状態を見ながら sleep-loop を自作する」代わりです。

向く場面
aws ec2 wait instance-running 起動完了待ち
aws cloudformation wait stack-create-complete デプロイ待ち
aws rds wait db-instance-available DB 変更後の復帰待ち

自分で while を書くより安全ですが、待ち時間が長い操作では timeout や失敗時の戻り値確認も合わせて考えるとよいです。


10. サービス別コマンド例(一覧寄り)

以下は 頻出パターンの例。ARN・名前は環境に合わせて置き換えること。

10.1 STS

aws sts get-caller-identity
aws sts assume-role \
  --role-arn arn:aws:iam::123456789012:role/ReadOnly \
  --role-session-name cli-$(whoami) \
  --duration-seconds 3600

10.2 S3(高レベル aws s3

操作
バケット一覧 aws s3 ls
オブジェクト一覧 aws s3 ls s3://bucket/prefix/
アップロード aws s3 cp ./a.txt s3://bucket/a.txt
ディレクトリ同期 aws s3 sync ./local/ s3://bucket/prefix/
削除(単一キー) aws s3 rm s3://bucket/key
バケット作成 aws s3 mb s3://bucket-name
バージョニング aws s3api put-bucket-versioning --bucket B --versioning-configuration Status=Enabled
静的 Web サイト(例) aws s3 website s3://bucket/ --index-document index.html

SSE 例: aws s3 cp file s3://b/k --sse AES256

10.3 S3(低レベル aws s3api

ポリシー・CORS・ライフサイクル等は s3api が多い。

aws s3api get-bucket-location --bucket my-bucket
aws s3api get-public-access-block --bucket my-bucket
aws s3api put-object --bucket my-bucket --key path/file.txt --body ./file.txt

10.4 EC2

aws ec2 describe-instances --filters "Name=tag:Env,Values=dev" --query 'Reservations[].Instances[].InstanceId' --output text
aws ec2 describe-vpcs --query 'Vpcs[].{Id:VpcId,Cidr:CidrBlock}' --output table
aws ec2 describe-security-groups --group-ids sg-0123456789abcdef0
aws ec2 authorize-security-group-ingress --group-id sg-xxx --protocol tcp --port 443 --cidr 203.0.113.0/24
aws ec2 create-tags --resources i-0abc --tags Key=Name,Value=web-1
# 停止・開始(本番は慎重に)
aws ec2 stop-instances --instance-ids i-0abc
aws ec2 start-instances --instance-ids i-0abc

10.5 EBS(スナップショット)

aws ec2 create-snapshot --volume-id vol-0abc --description "pre-change-$(date +%Y%m%d)"
aws ec2 describe-snapshots --owner-ids self --query 'Snapshots[?StartTime>=`2026-01-01`].[SnapshotId,VolumeId,StartTime]' --output table

10.6 ELB(ALB/NLB)

aws elbv2 describe-load-balancers
aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:...

10.7 RDS

aws rds describe-db-instances --query 'DBInstances[].{Id:DBInstanceIdentifier,Class:DBInstanceClass,Endpoint:Endpoint.Address}' --output table
aws rds create-db-snapshot --db-instance-identifier mydb --db-snapshot-identifier mydb-manual-$(date +%Y%m%d)

10.8 DynamoDB

aws dynamodb list-tables
aws dynamodb describe-table --table-name T
aws dynamodb query \
  --table-name T \
  --key-condition-expression "pk = :p" \
  --expression-attribute-values '{":p":{"S":"USER#1"}}'

10.9 Lambda

aws lambda list-functions --query 'Functions[].FunctionName' --output text
aws lambda invoke --function-name my-fn --payload '{"k":"v"}' --cli-binary-format raw-in-base64-out /tmp/out.json
cat /tmp/out.json
aws lambda update-function-code --function-name my-fn --zip-file fileb://fn.zip
aws lambda publish-version --function-name my-fn

10.10 SNS

aws sns list-topics
aws sns publish --topic-arn arn:aws:sns:ap-northeast-1:123456789012:alerts --message "disk warning"

10.11 SQS

aws sqs list-queues
aws sqs get-queue-url --queue-name my-queue
aws sqs send-message --queue-url https://sqs....amazonaws.com/.../my-queue --message-body '{"event":"ping"}'
aws sqs receive-message --queue-url ... --max-number-of-messages 10 --wait-time-seconds 10
aws sqs purge-queue --queue-url ...

10.12 EventBridge

aws events list-rules --event-bus-name default
aws events put-events --entries '[{"Source":"my.app","DetailType":"test","Detail":"{\"x\":1}"}]'

10.13 Step Functions

aws stepfunctions list-state-machines
aws stepfunctions start-execution --state-machine-arn arn:aws:states:...:stateMachine:MySM --input '{"orderId":"123"}'
aws stepfunctions describe-execution --execution-arn arn:aws:states:...:execution:MySM:abc

10.14 API Gateway(REST)

aws apigateway get-rest-apis
aws apigateway get-resources --rest-api-id abc123

10.15 CloudWatch(メトリクス・アラーム)

aws cloudwatch list-metrics --namespace AWS/EC2
aws cloudwatch describe-alarms --alarm-names CPUHigh
aws cloudwatch put-metric-alarm \
  --alarm-name demo-cpu \
  --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 60 \
  --threshold 80 --comparison-operator GreaterThanThreshold \
  --evaluation-periods 2 --dimensions Name=InstanceId,Value=i-0abc

10.16 CloudWatch Logs

aws logs describe-log-groups --log-group-name-prefix /aws/lambda/
aws logs tail /aws/lambda/my-fn --since 10m --follow
aws logs filter-log-events --log-group-name /ecs/app --filter-pattern "ERROR" --max-items 20

10.17 IAM(読み取り中心)

aws iam list-users --max-items 50
aws iam list-attached-user-policies --user-name alice
aws iam simulate-principal-policy \
  --policy-source-arn arn:aws:iam::123456789012:user/alice \
  --action-names s3:GetObject ec2:DescribeInstances \
  --resource-arns arn:aws:s3:::mybucket/*

10.18 KMS

aws kms list-keys
aws kms describe-key --key-id alias/mykey
# 暗号化データは base64 取り扱いに注意(公式例を参照)

10.19 Secrets Manager

aws secretsmanager list-secrets
aws secretsmanager get-secret-value --secret-id prod/db --query SecretString --output text

10.20 Systems Manager(Parameter Store / Run Command)

aws ssm describe-parameters --max-results 10
aws ssm get-parameter --name /app/db/host --with-decryption
aws ssm send-command \
  --document-name "AWS-RunShellScript" \
  --instance-ids "i-0abc" \
  --parameters 'commands=["uname -a"]'

10.21 ECS

aws ecs list-clusters
aws ecs list-services --cluster my-cluster
aws ecs describe-services --cluster my-cluster --services my-svc
aws ecs update-service --cluster my-cluster --service my-svc --force-new-deployment

10.22 EKS

aws eks list-clusters
aws eks describe-cluster --name my-cluster --query 'cluster.status'
aws eks update-kubeconfig --name my-cluster --region ap-northeast-1 --alias my-cluster

10.23 CloudFormation

aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE UPDATE_COMPLETE
aws cloudformation describe-stack-events --stack-name mystack --max-items 15
aws cloudformation delete-stack --stack-name mystack   # 注意: リソース削除ポリシーに依存

10.24 CloudTrail

aws cloudtrail describe-trails
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances --max-results 5

10.25 ACM

aws acm list-certificates
aws acm describe-certificate --certificate-arn arn:aws:acm:...

10.26 Route 53

aws route53 list-hosted-zones
aws route53 list-resource-record-sets --hosted-zone-id Z1234567890ABC

10.27 Organizations(管理者向け)

aws organizations describe-organization
aws organizations list-accounts --query 'Accounts[].[Id,Name,Status]' --output table

10.28 Glue / Athena(最小例)

aws glue get-databases --catalog-id 123456789012
aws athena list-work-groups

10.29 Kinesis Data Streams

aws kinesis list-streams
aws kinesis describe-stream --stream-name my-stream

10.30 API 呼び出しの --cli-input-json

大きな JSON はファイルにして渡す。

aws lambda create-function --cli-input-json file://create-fn.json

10.31 Cognito(ユーザープール)

aws cognito-idp list-user-pools --max-results 10
aws cognito-idp list-users --user-pool-id ap-northeast-1_XXXX --limit 10

10.32 App Runner

aws apprunner list-services
aws apprunner describe-service --service-arn arn:aws:apprunner:...

10.33 Batch

aws batch describe-job-queues
aws batch submit-job --job-name demo --job-queue my-queue --job-definition my-def:1

10.34 Service Quotas

aws service-quotas list-service-quotas --service-code ec2 --query 'Quotas[?QuotaName==`Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances`].[Value,Adjustable]' --output table

10.35 Resource Groups Tagging API

aws resourcegroupstaggingapi get-resources --tag-filters Key=Env,Values=prod --resource-type-filters ec2:instance
aws resourcegroupstaggingapi tag-resources --resource-arn-list arn:aws:ec2:...:instance/i-0abc --tags Project=demo

10.36 Config(設定記録)

aws configservice describe-configuration-recorders
aws configservice describe-compliance-by-config-rule

10.37 GuardDuty(一覧・結果取得の入口)

aws guardduty list-detectors
aws guardduty list-findings --detector-id <id> --max-results 5

10.38 Cost Explorer(料金分析・注意: 権限とレポート有効化)

aws ce get-cost-and-usage \
  --time-period Start=2026-04-01,End=2026-04-26 \
  --granularity MONTHLY \
  --metrics BlendedCost \
  --group-by Type=SERVICE

(初回はコンソールで Cost Explorer を有効化する必要がある場合あり。ce:GetCostAndUsage 等の IAM が必要。)

10.39 S3 Select(大きなオブジェクトのフィルタ取得・API 名は s3api

aws s3api select-object-content \
  --bucket my-bucket --key data.csv \
  --expression-type SQL \
  --expression "select s._1 from S3Object s limit 5" \
  --input-serialization CSV={FileHeaderInfo=USE} \
  --output-serialization CSV={} \
  /tmp/out.csv

10.40 EC2 Image Builder / Launch Template(参照例)

aws ec2 describe-launch-template-versions --launch-template-name my-lt

11. ユースケース別レシピ

運用・トラブルシュートで繰り返す 「やりたいこと → CLI」 の索引。コマンドは環境に合わせて調整し、help で引数を確認すること。

# ユースケース 代表コマンド / 流れ
1 初回セットアップ aws configure / aws configure ssoaws sts get-caller-identity
2 別アカウント ReadOnly へ切替 configrole_arn + source_profile--profile
3 S3 バケット間の全コピー aws s3 sync s3://src s3://dst(SSE・ACL 確認)
4 Lambda を一回実行して確認 aws lambda invokeaws logs tail
5 障害時に稼働 EC2 一覧 aws ec2 describe-instances + --filters + --query
6 RDS 変更前スナップショット aws rds create-db-snapshot
7 SQS 滞留件数確認 aws sqs get-queue-attributes(ApproximateNumberOfMessages)
8 EventBridge テスト送信 aws events put-events
9 Step Functions 実行追跡 start-executiondescribe-execution
10 シークレットをファイルに残さない get-secret-value --query SecretString --output text をパイプ
11 SSM パラメータ運用 読取ロール分離 + CloudTrail
12 ECS 強制再デプロイ aws ecs update-service --force-new-deployment
13 EKS kubeconfig 更新 aws eks update-kubeconfig
14 CloudFormation デプロイ aws cloudformation deploy + capabilities
15 CloudWatch アラーム閾値変更 aws cloudwatch put-metric-alarm
16 CloudTrail で操作洗い出し aws cloudtrail lookup-events
17 S3 パブリックブロック確認 aws s3api get-public-access-block
18 S3 クロスリージョンコピー aws s3 cp + --source-region
19 DynamoDB テーブル定義の保存 aws dynamodb describe-table を JSON で保存
20 タグ一括付与 aws ec2 create-tags / resourcegroupstaggingapi
21 コストをサービス別に確認 aws ce get-cost-and-usage + --group-by
22 タグ条件で EC2 停止 describe-instancesstop-instances(承認必須)
23 Cognito ユーザー確認 aws cognito-idp list-users
24 App Runner 状態確認 aws apprunner describe-service
25 SSM セッション接続 aws ssm start-session --target(プラグイン要)
26 Config ルール準拠 aws configservice describe-compliance-by-config-rule
27 GuardDuty 検知一覧 aws guardduty list-findings
28 サービスクォータ現況 aws service-quotas get-service-quota
29 S3 Select で先頭行のみ aws s3api select-object-content
30 Launch Template バージョン aws ec2 describe-launch-template-versions
31 Auto Scaling 希望台数変更 aws autoscaling set-desired-capacity
32 ALB リスナールール一覧 aws elbv2 describe-rules --listener-arn
33 Target Group ヘルス aws elbv2 describe-target-health
34 RDS クラスター(Aurora)状態 aws rds describe-db-clusters
35 RDS パラメータグループ aws rds describe-db-parameters
36 ElastiCache レプリケーショングループ aws elasticache describe-replication-groups
37 Redshift クラスター一覧 aws redshift describe-clusters
38 OpenSearch ドメイン状態 aws opensearch describe-domain
39 MSK クラスター一覧 aws kafka list-clusters
40 EMR クラスター一覧 aws emr list-clusters
41 SageMaker エンドポイント aws sagemaker list-endpoints
42 Batch ジョブログ aws batch describe-jobs → CloudWatch Logs
43 Glue クローラー実行 aws glue start-crawler
44 Athena クエリ実行 aws athena start-query-execution + get-query-results
45 Kinesis Firehose 配信 aws firehose describe-delivery-stream
46 DMS レプリケーション状況 aws dms describe-replication-tasks
47 Storage Gateway 一覧 aws storagegateway list-gateways
48 DataSync タスク開始 aws datasync start-task-execution
49 FSx ファイルシステム aws fsx describe-file-systems
50 Transfer Family サーバ aws transfer list-servers
51 MQ ブローカー一覧 aws mq list-brokers
52 Direct Connect 仮想インターフェース aws directconnect describe-virtual-interfaces
53 Global Accelerator aws globalaccelerator list-accelerators
54 WAFv2 WebACL 一覧 aws wafv2 list-web-acls --scope REGIONAL
55 Shield Advanced 購読 aws shield describe-subscription
56 Security Hub 有効化確認 aws securityhub describe-hub
57 Inspector2 検出 aws inspector2 list-findings
58 IAM Access Analyzer 外部アクセス aws accessanalyzer list-findings
59 Macie2 分類ジョブ aws macie2 list-classification-jobs
60 Budgets アラート閾値 aws budgets describe-budgets --account-id
61 日次コストの前後比スポット確認 aws ce get-cost-and-usage + DAILY で複数日を取得して比較
62 PI(RDS)メトリクス aws pi get-resource-metrics
63 Backup バックアップジョブ aws backup list-backup-jobs
64 DLM ポリシー aws dlm get-lifecycle-policies
65 CloudFront ディストリビューション aws cloudfront list-distributions
66 ACM 証明書検証待ち確認 aws acm describe-certificate
67 Route53 ヘルスチェック aws route53 list-health-checks
68 VPC Flow Logs 有効化確認 aws ec2 describe-flow-logs
69 NAT Gateway の IP aws ec2 describe-nat-gateways
70 Transit Gateway ルート aws ec2 describe-transit-gateway-route-tables
71 VPC Endpoints 一覧 aws ec2 describe-vpc-endpoints
72 Network Firewall aws network-firewall list-firewalls
73 Verified Access aws ec2 describe-verified-access-instances
74 RAM リソース共有 aws ram get-resource-shares
75 Service Catalog ポートフォリオ aws servicecatalog list-portfolios
76 Control Tower ランディングゾーン aws controltower list-landing-zones(要権限)
77 Organizations SCP 一覧 aws organizations list-policies --filter SERVICE_CONTROL_POLICY
78 CloudWatch Synthetics カナリア aws synthetics describe-canaries
79 X-Ray トレースグループ aws xray get-trace-summaries
80 AppConfig 設定デプロイ aws appconfig start-deployment
81 IoT Core モノ一覧 aws iot list-things
82 IoT ルール一覧 aws iot list-topic-rules
83 Greengrass コアデバイス aws greengrassv2 list-core-devices
84 Timestream DB aws timestream-write list-databases
85 QLDB 台帳 aws qldb list-ledgers
86 Neptune クラスター aws neptune describe-db-clusters
87 DocumentDB クラスター aws docdb describe-db-clusters
88 MediaConvert ジョブ aws mediaconvert list-jobs(アカウント固有エンドポイント取得が必要な場合あり)
89 IVS チャンネル aws ivs list-channels
90 Location Service トラッカー aws geo list-trackers
91 SES 送信クォータ aws ses get-send-quota
92 Pinpoint アプリ一覧 aws pinpoint get-apps
93 WorkSpaces 一覧 aws workspaces describe-workspaces
94 AppStream スタック aws appstream describe-stacks
95 WorkMail 組織 aws workmail list-organizations
96 CodePipeline パイプライン aws codepipeline list-pipelines
97 CodeBuild プロジェクト aws codebuild list-projects
98 CodeDeploy アプリ aws deploy list-applications
99 CodeCommit リポジトリ aws codecommit list-repositories
100 Device Farm プロジェクト aws devicefarm list-projects

11.1 クロスアカウント AssumeRole 後に一時クレデンシャルで続行(例)

CREDS=$(aws sts assume-role \
  --role-arn arn:aws:iam::222222222222:role/CrossRead \
  --role-session-name tmp \
  --query 'Credentials.[AccessKeyId,SecretAccessKey,SessionToken]' \
  --output text)
read -r AK SK ST <<<"$CREDS"
AWS_ACCESS_KEY_ID=$AK AWS_SECRET_ACCESS_KEY=$SK AWS_SESSION_TOKEN=$ST \
  aws sts get-caller-identity

(運用では プロファイルcredential_process の方が安全・簡潔なことが多い。)

11.2 S3 バケットポリシー確認(読み取り)

aws s3api get-bucket-policy --bucket my-bucket --query Policy --output text | jq .

11.3 S3 同期で事故りにくい実務パターン

aws s3 sync は便利ですが、オプション次第でかなり挙動が変わります。

オプション 何が変わるか
--dryrun 実際には変更せず差分だけ表示
--delete 宛先にしかないファイルを削除
--exclude / --include 対象ファイルの絞り込み
--exact-timestamps timestamp の比較を厳密化
--size-only サイズだけで差分判定
--no-progress / --only-show-errors CI やログ向けに静かにする
aws s3 sync ./dist/ s3://my-bucket/site/ \
  --delete \
  --exclude "*.map" \
  --cache-control "public,max-age=300" \
  --dryrun

まず --dryrun で差分を確認してから、本番実行に切り替える癖をつけると安全です。

11.4 CloudFormation デプロイでよく使うオプション

aws cloudformation deploy は実務でかなり多用されます。

オプション 用途
--template-file テンプレートファイル
--stack-name 対象 stack 名
--parameter-overrides パラメータ上書き
--capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM IAM リソースを含むとき
--tags stack tags 付与
--no-execute-changeset いったん差分だけ作る
--fail-on-empty-changeset 変更なしを失敗扱いにするか
--role-arn CloudFormation 実行ロール
aws cloudformation deploy \
  --template-file infra.yaml \
  --stack-name myapp-prod \
  --parameter-overrides Env=prod ImageTag=2026-04-27 \
  --capabilities CAPABILITY_NAMED_IAM \
  --tags System=myapp Env=prod

変更前レビューを重視するなら、--no-execute-changeset を挟む運用が向きます。

11.5 CloudWatch Logs で障害を見るときの流れ

aws logs tail /aws/lambda/my-fn --since 30m --follow
aws logs filter-log-events \
  --log-group-name /ecs/app \
  --filter-pattern '"ERROR" "Timeout"' \
  --max-items 50

ログ閲覧では次の観点が実務で役立ちます。

  • まず tail --since 10m で現在の症状をつかむ
  • 特定文字列があるなら filter-log-events
  • ECS / Lambda / Batch など、実行基盤ごとに log group 名の規則を把握しておく

11.6 IAM / 権限トラブルを切るとき

aws sts get-caller-identity
aws iam simulate-principal-policy \
  --policy-source-arn arn:aws:iam::123456789012:role/AppRole \
  --action-names s3:GetObject kms:Decrypt \
  --resource-arns arn:aws:s3:::my-bucket/* arn:aws:kms:ap-northeast-1:123456789012:key/abcd...

CLI で権限トラブルを見るときは、少なくとも次を分けて考えると整理しやすいです。

  • そもそも 誰として呼んでいるか (sts get-caller-identity)
  • IAM policy で拒否されているのか
  • resource policy、KMS key policy、SCP など別の層で拒否されているのか

11.7 EKS / kubeconfig 更新の実務メモ

aws eks update-kubeconfig \
  --name my-cluster \
  --region ap-northeast-1 \
  --alias prod-my-cluster

クラスターを複数扱うなら --alias を付ける方があとで読みやすいです。kubectl config get-contexts とセットで管理すると混乱しにくくなります。

11.8 コスト確認の最小パターン

aws ce get-cost-and-usage \
  --time-period Start=2026-04-01,End=2026-04-27 \
  --granularity DAILY \
  --metrics UnblendedCost \
  --group-by Type=SERVICE

コスト系 API は、

  • 利用開始前の有効化
  • 呼び出せるリージョン / 権限
  • 時間帯や締め処理による見え方

でつまずきやすいです。レポート用途では、いきなり複雑な grouping を組むより、まず日次・サービス別から始めるのが無難です。

11.9 SSM で踏み台なし接続

aws ssm start-session --target i-0abc123456789def0

これは Session Manager Plugin が必要ですが、SSH 鍵や bastion を減らせるので、かなり実務的です。接続そのものだけでなく、誰がどこへ入ったか を監査しやすいのも利点です。


12. シェル・jq・ループ・入力ファイル

12.1 インスタンス ID ループ

for id in $(aws ec2 describe-instances --filters "Name=tag:Role,Values=web" \
  --query 'Reservations[].Instances[].InstanceId' --output text); do
  echo "$id"
done

12.2 jq と組み合わせ

aws lambda get-function-configuration --function-name my-fn --output json | jq '.Runtime, .MemorySize'

12.3 --generate-cli-skeleton / cli-input-json

aws lambda create-function --generate-cli-skeleton input > skeleton.json
# skeleton を編集後
aws lambda create-function --cli-input-json file://skeleton.json

12.4 ページネーションの手動ループ(概念)

TOKEN=""
while :; do
  OUT=$(aws s3api list-objects-v2 --bucket my-bucket --max-keys 100 ${TOKEN:+--starting-token "$TOKEN"} --output json)
  echo "$OUT" | jq -r '.Contents[].Key'
  TOKEN=$(echo "$OUT" | jq -r '.NextContinuationToken // empty')
  [ -z "$TOKEN" ] && break
done

(サービスによってトークン名が異なる。aws s3api list-objects-v2 help を参照。)


13. デバッグ・ログ・終了コード

aws sts get-caller-identity --debug 2> /tmp/aws-debug.log
終了コード 目安
0 成功
非ゼロ API エラー、権限、バリデーション、ネットワーク等

13.1 --debug で見えるもの

--debug を付けると、ざっくり次の層が見えます。

  • どの profile / region が解決されたか
  • credential chain がどこを見たか
  • どの endpoint へ飛んだか
  • 再試行したか
  • HTTP status と service error code

「権限がない」のか「リージョン違い」なのか「SSO 期限切れ」なのかを分けるときに強いです。


14. セキュリティと運用のベストプラクティス

  1. 長期キーを Git に入れない … CI は OIDC 推奨。
  2. 最小権限プロファイルAdministratorAccess を日常使いしない。
  3. history に秘密が残らないよう export 方式を避けるか HISTCONTROL を検討。
  4. --no-verify-ssl を本番で使わない
  5. リージョン明示 … グローバルサービスは別途注意。
  6. 破壊的操作terminate / delete-stack / purge-queue は二重確認・承認フロー。
  7. CLI バージョン固定 … CI イメージで揃える。
  8. --query--output text の組み合わせを過信しない … 空配列や複数件で崩れることがある。
  9. 公開用 runbook と個人用 alias を分ける … alias の癖が共有手順へ混ざると事故る。
  10. プロファイル名に権限レベルを入れる … 例: dev-readonly, prod-admin

15. AWS 関連のその他 CLI ツール

AWS CLI と 併用されることが多い 公式/準公式ツールを整理する(インストール手順は各公式ドキュメント参照)。

15.1 一覧

ツール コマンド例 用途
AWS SAM CLI sam build, sam deploy, sam local invoke サーバレス(Lambda/API 等)のローカル検証・パッケージ・デプロイ
AWS CDK CLI cdk synth, cdk deploy, cdk diff TypeScript/Python 等でインフラ定義し CloudFormation へ
AWS Copilot copilot app init, copilot svc deploy ECS ベースのアプリを対話的に構築
Amplify CLI amplify init, amplify push フロント+バックエンド連携のフルスタック開発フロー
Elastic Beanstalk CLI eb init, eb deploy PaaS スタイルのデプロイ
Session Manager Plugin (プラグイン)aws ssm start-session と併用 EC2/コンテナへのブラウザレスシェル
eksctl eksctl create cluster, eksctl utils describe-stacks EKS クラスタ作成・運用補助(Weaveworks 発、広く利用)
AWS IoT Device SDK 付属ツール 環境による デバイス接続テスト等

15.2 クレデンシャル補助(サードパーティ)

ツール 用途
aws-vault OS キーチェーン+短命クレデンシャルで安全にプロファイル利用
awsume 複数プロファイルの assume-role を簡略化

(導入は組織のセキュリティポリシーに従う。)

15.3 IaC・検証でよく併用される CLI

ツール 備考
Terraform / OpenTofu AWS 以外とも統合。terraform apply は AWS CLI とは別系統だが同一クレデンシャルチェーンを使うことが多い
Pulumi CLI pulumi up 等。言語埋め込み型 IaC。バックエンドに AWS を指定
Serverless Framework serverless deploy 等。Lambda/API Gateway 中心のワークフロー(Node 系が多い)
LocalStack aws --endpoint-url=http://localhost:4566 ... でエミュレータへ
AWS CloudShell ブラウザ上のシェル(CLI プリインストール)。ローカルに CLI を入れない検証用

15.4 コンテナ・レジストリ

ツール 備考
Docker docker push で ECR と組み合わせ
Finch 環境に応じた代替ランタイム

16. 参考リンク

この一覧について(重要)

  • 本稿の作者は、掲載 URL のページをすべて精読したうえで本文を引用したわけではありません。 リンクは 公式ドキュメントへの入口 としての整理です。
  • URL のパス変更・リダイレクト・製品世代の切替(例: Amplify Gen 1 / Gen 2)はよくあるため、実務ではリンク先の現在の目次と help の内容を正 としてください。
  • リンク先の利用条件・ライセンスは各サイトに従います。
リソース URL
AWS CLI User Guide https://docs.aws.amazon.com/cli/latest/userguide/
CLI リファレンス https://docs.aws.amazon.com/cli/latest/reference/
Global options https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html
Config / credentials precedence https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
Environment variables https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
Config file settings https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html
Parameter types https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html
Filtering output / JMESPath https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html
Pagination https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-pagination.html
Auto-prompt https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-prompting.html
JMESPath https://jmespath.org/
S3 cp https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html
S3 sync https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html
SAM CLI https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html
AWS CDK https://docs.aws.amazon.com/cdk/v2/guide/cli.html
Copilot https://aws.github.io/copilot-cli/
Amplify CLI https://docs.amplify.aws/cli/
eksctl https://eksctl.io/
Session Manager Plugin https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html
Pulumi https://www.pulumi.com/docs/cli/
Serverless Framework https://www.serverless.com/framework/docs/getting-started
LocalStack https://docs.localstack.cloud/user-guide/aws/tooling/
AWS CloudShell https://docs.aws.amazon.com/cloudshell/latest/userguide/working-with-aws-cli.html

最終更新: 2026-04-26 — コマンド例は教育用の雛形です。参考リンクは入口の整理であり、実行・設計の正は公式ドキュメントと aws … help で確認してください。