AWS認定資格 WEB問題集&徹底解説
クラウドプラクティショナー
AWSサービスの一つであるAWS Command Line Interface (AWS CLI)はどんな内容なのでしょうか?また、AWS認定資格のクラウドプラクティショナー(CLF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
AWS Command Line Interface(AWS CLI)は、ターミナルやPowerShellからAWSサービスのAPIを呼び出すオープンソースのコマンドラインツールです。 コンソールで行う多くの管理操作をコマンド化し、スクリプト、CI/CD、運用自動化、トラブルシューティングに利用できます。
現行の主要バージョンはAWS CLI v2です。v2は最新機能をサポートし、公式のバンドルインストーラーで導入することが推奨されます。 試験では、CLI自体の使い方よりも、認証情報、IAMロール、プロファイル、リージョン、出力形式、最小権限を理解することが重要です。
2. 主な特徴と機能
2.1 AWS APIのコマンド実行
AWS CLIはAWSサービスのパブリックAPIへ直接アクセスします。 `aws s3 ls`、`aws ec2 describe-instances`、`aws lambda invoke`のように、サービス名、操作名、オプションを指定して実行します。
2.2 AWS CLI v2
AWS CLI v2は最新メジャーバージョンで、IAM Identity Center連携、最新サービス対応、v1からの改善を含みます。 v1にしかない古いスクリプトは移行時の互換性を確認します。
2.3 プロファイル管理
`~/.aws/config`と`~/.aws/credentials`に複数アカウント、リージョン、出力形式、ロール引き受け設定を保存できます。 `--profile`や`AWS_PROFILE`で環境を切り替えます。
2.4 認証方式
IAMユーザーのアクセスキー、STSの一時認証情報、AssumeRole、IAM Identity Center、EC2/ECS/Lambdaの実行ロールなどを利用できます。 長期アクセスキーより、短期認証情報とロールベースの運用が推奨されます。
2.5 出力形式とクエリ
出力形式はjson、yaml、yaml-stream、text、tableなどを選べます。 `--query`でJMESPathを使い、必要なフィールドだけ抽出してスクリプトや監査に利用できます。
2.6 自動化とCI/CD
シェルスクリプト、PowerShell、CodeBuild、GitHub Actions、JenkinsなどからAWS CLIを実行し、デプロイや運用手順を自動化できます。 CI/CDでは環境変数やOIDC/ロール引き受けで一時認証情報を使います。
3. アーキテクチャおよび技術要素
- ユーザーまたは実行環境にAWS CLI v2をインストールする。
- プロファイル、リージョン、出力形式、認証方式を設定する。
- CLIコマンドを実行すると、AWS CLIが認証情報を解決し、署名付きAWS APIリクエストを送信する。
- AWSサービスがIAM認可を評価し、許可された操作だけを実行する。
- レスポンスは指定した出力形式で返り、`--query`やシェルツールで加工できる。
- API呼び出しはCloudTrailや各サービスログで監査できる。
AWS CLIは管理コンソールやSDKと同じくAWS APIを呼び出します。 そのため、CLIでできる操作はIAM権限、SCP、セッションポリシー、リソースポリシー、リージョン設定に依存します。
4. セキュリティと認証・認可
- 最小権限: CLI利用者やCI/CDロールには必要なAPIアクションだけを許可する。
- 長期アクセスキー回避: 可能な限りIAM Identity Center、AssumeRole、インスタンス/タスク/関数ロールを使う。
- MFA: 人間の管理操作やAssumeRoleにMFA条件を付ける。
- 認証情報の優先順位: コマンドオプション、環境変数、プロファイル、インスタンスメタデータなどの解決順序を理解する。
- 秘密情報管理: アクセスキーをGit、スクリプト、ログ、コンテナイメージに含めない。
- 監査: CLIからのAPI呼び出しもCloudTrailに記録されるため、誰が何を実行したかを追跡できる。
5. 料金形態
AWS CLI自体は無料で利用できます。 ただし、CLIで作成・起動・変更したAWSリソースや、API呼び出し、データ転送、ログ出力には各サービスの料金が発生します。
- CLIツール: インストールと利用に追加料金はない。
- 操作対象: EC2、RDS、S3、Lambdaなどを作成・利用すれば通常料金が発生する。
- API/ログ: CloudWatch Logs、CloudTrail Lake、S3アクセス、データ転送などは各サービス料金を確認する。
- 自動化リスク: スクリプトのループや誤設定で大量リソースを作成しないよう、権限とガードレールを設計する。
- 最適化: CLIで棚卸しやタグ確認を自動化し、未使用リソース削除に活用する。
6. よくあるアーキテクチャ・設計パターン
- 運用自動化: シェルスクリプトでEC2停止、S3同期、ログ取得、タグ付けを自動化する。
- CI/CD: CodeBuildやGitHub ActionsからCLIでCloudFormation、ECS、Lambda、S3デプロイを実行する。
- マルチアカウント運用: プロファイルとAssumeRoleで複数アカウントを安全に切り替える。
- 調査/棚卸し: `describe`や`list`系コマンドと`--query`でリソース一覧を抽出する。
- CloudShell利用: ローカル設定なしでCloudShellからAWS CLI v2を実行する。
- 一時認証情報: STSやIAM Identity Centerで短期セッションを取得し、長期キーを削減する。
7. 設定・デプロイ手順(ハンズオン例)
- 公式手順に従ってAWS CLI v2をインストールし、`aws --version`で確認する。
- IAM Identity Center、AssumeRole、またはアクセスキーで認証設定を行う。
- `aws sts get-caller-identity`で現在のアカウント、ユーザー/ロール、ARNを確認する。
- `aws configure list`で認証情報、リージョン、出力形式の解決元を確認する。
- `--profile`、`--region`、`--output`、`--query`を使い、複数環境や必要フィールド抽出を試す。
- スクリプト化する場合はエラーハンドリング、ドライラン、最小権限、ログ出力、秘密情報の扱いを確認する。
8. 試験で問われやすいポイント
8.1 サービス選択
- Q: AWS CLIは何をするツール?
A: コマンドラインからAWSサービスのAPIを呼び出し、リソースを管理・自動化するツール。 - Q: 現行の主要なAWS CLIバージョンは?
A: AWS CLI v2。 - Q: ブラウザからAWS CLIをすぐ使いたい場合のサービスは?
A: AWS CloudShell。
8.2 認証とプロファイル
- Q: CLIで現在の認証主体を確認する代表コマンドは?
A: `aws sts get-caller-identity`。 - Q: 複数アカウントやロールを切り替えるCLI機能は?
A: 名前付きプロファイル、`--profile`、AssumeRole、IAM Identity Center。 - Q: 長期アクセスキーの代わりに推奨される認証方式は?
A: IAM Identity Center、STS AssumeRole、EC2/ECS/LambdaのIAMロールなどの一時認証情報。
8.3 出力と料金
- Q: CLI出力から必要なフィールドだけ抽出するオプションは?
A: `--query`。JMESPath式で抽出する。 - Q: AWS CLI自体に料金はかかる?
A: かからない。ただしCLIで操作したAWSリソースには通常料金が発生する。 - Q: CLI操作は監査できる?
A: はい。AWS API呼び出しとしてCloudTrailに記録される。