AWS認定資格 WEB問題集&徹底解説

クラウドプラクティショナー

AWS Command Line Interface (AWS CLI) の概要と試験出題ポイントは?

AWSサービスの一つであるAWS Command Line Interface (AWS CLI)はどんな内容なのでしょうか?また、AWS認定資格のクラウドプラクティショナー(CLF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

AWS Command Line Interface 徹底解説 | AWS認定試験の頻出ポイントまとめ

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. アーキテクチャおよび技術要素

  1. ユーザーまたは実行環境にAWS CLI v2をインストールする。
  2. プロファイル、リージョン、出力形式、認証方式を設定する。
  3. CLIコマンドを実行すると、AWS CLIが認証情報を解決し、署名付きAWS APIリクエストを送信する。
  4. AWSサービスがIAM認可を評価し、許可された操作だけを実行する。
  5. レスポンスは指定した出力形式で返り、`--query`やシェルツールで加工できる。
  6. 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. 設定・デプロイ手順(ハンズオン例)

  1. 公式手順に従ってAWS CLI v2をインストールし、`aws --version`で確認する。
  2. IAM Identity Center、AssumeRole、またはアクセスキーで認証設定を行う。
  3. `aws sts get-caller-identity`で現在のアカウント、ユーザー/ロール、ARNを確認する。
  4. `aws configure list`で認証情報、リージョン、出力形式の解決元を確認する。
  5. `--profile`、`--region`、`--output`、`--query`を使い、複数環境や必要フィールド抽出を試す。
  6. スクリプト化する場合はエラーハンドリング、ドライラン、最小権限、ログ出力、秘密情報の扱いを確認する。

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に記録される。