目次
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と上記を優先してください。
目次
- 概要とバージョン
- インストールと更新
- 設定ファイルの構造
- 認証のパターン
- コマンドの基本形
- グローバルオプション
- パラメータの渡し方と JSON / バイナリ入力
- 出力形式と JMESPath
- ページネーションと Waiter
- サービス別コマンド例(一覧寄り)
- ユースケース別レシピ
- シェル・jq・ループ・入力ファイル
- デバッグ・ログ・終了コード
- セキュリティと運用のベストプラクティス
- AWS 関連のその他 CLI ツール
- 参考リンク
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
config と credentials のどちらに何を書くか迷ったら、次の整理で考えると事故が減ります。
| 置き場所 | 向く内容 |
|---|---|
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 よりも シェルの quoting と JSON / バイナリの渡し方 です。
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
--query は JMESPath。レスポンス取得後のクライアント側抽出。
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 sso → aws sts get-caller-identity |
| 2 | 別アカウント ReadOnly へ切替 | config の role_arn + source_profile → --profile |
| 3 | S3 バケット間の全コピー | aws s3 sync s3://src s3://dst(SSE・ACL 確認) |
| 4 | Lambda を一回実行して確認 | aws lambda invoke → aws 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-execution → describe-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-instances → stop-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. セキュリティと運用のベストプラクティス
- 長期キーを Git に入れない … CI は OIDC 推奨。
- 最小権限プロファイル …
AdministratorAccessを日常使いしない。 historyに秘密が残らないよう export 方式を避けるかHISTCONTROLを検討。--no-verify-sslを本番で使わない。- リージョン明示 … グローバルサービスは別途注意。
- 破壊的操作 …
terminate/delete-stack/purge-queueは二重確認・承認フロー。 - CLI バージョン固定 … CI イメージで揃える。
--queryと--output textの組み合わせを過信しない … 空配列や複数件で崩れることがある。- 公開用 runbook と個人用 alias を分ける … alias の癖が共有手順へ混ざると事故る。
- プロファイル名に権限レベルを入れる … 例:
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の内容を正 としてください。 - リンク先の利用条件・ライセンスは各サイトに従います。
最終更新: 2026-04-26 — コマンド例は教育用の雛形です。参考リンクは入口の整理であり、実行・設計の正は公式ドキュメントと aws … help で確認してください。