AWS CLIとは?安全な初期設定とSSO運用の基本

AWSクラウド

AWS CLI はコマンドラインから AWS サービスを操作するためのツールです。導入する際に「アクセスキーを設定すればすぐ使える」と考える情シス・クラウド基盤担当者の方も少なくありません。しかし複数のAWSアカウントを扱う組織では、認証情報の管理を誤ると権限の悪用や情報漏えいにつながるリスクがあります。「どのように安全に設定・運用すればよいのか」と疑問をお持ちの方も多いのではないでしょうか。

本記事では、AWS CLI v2を前提とした安全な初期設定からIAM Identity Center(SSO)を中心とした認証方式の選び方、プロファイル設計、権限管理・監査の基本まで具体的にご紹介します。

テクノプロはAWSの構築から運用まで幅広く支援しています

Index

まず結論|AWS CLI導入で最初に決めるべき4つのこと

AWS CLIを新たに導入する、あるいは既存の運用を見直す際にまず押さえておきたいのは、次の4点です。

  • AWS CLI v2を前提としたバージョン選定を行う
  • 認証方式はAWS IAM Identity Center(SSO)を第一候補にする
  • 長期間有効なアクセスキーの常用を避ける
  • 複数のAWSアカウント・環境を扱う場合はプロファイル分離を前提に設計する

AWS CLIは単なるコマンド実行ツールではなく、認証・権限・運用ルールまで含めて統制すべき業務基盤です。導入初期にこの4点を決めておくことで、後から認証情報管理の見直しに追われるリスクを大きく減らせます。

実際に、あるIT企業では導入初期にSSOとプロファイル分離を前提とした設計を行ったことで、複数アカウント運用への移行後、設定変更にかかる工数を約60%削減できたという事例も報告されています。

逆に、この4点を決めないまま個々の担当者がその場しのぎで設定を行うと、数か月後にはプロファイル名や認証方式がばらばらになり、棚卸しだけで多くの工数を要する状態に陥りやすい点にも注意が必要です。

この記事で分かること

AWS CLIは便利な一方で、認証設定や権限管理を誤ると、想定外の環境を操作したり運用トラブルにつながったりする可能性があります。本記事では、AWS CLIを安全に導入・運用するために押さえておきたいポイントを解説します。

  • AWS CLIとAWSマネジメントコンソールの違いと使い分け
  • AWS CLIのインストール・初期設定・動作確認の手順
  • アクセスキー認証とSSO認証の違い、および適切な選び方
  • プロファイル設計・権限管理・監査の基本的な考え方
  • CI/CDを含む安全で再現性の高いAWS CLI運用のポイント

この記事を読むことで、自社に適したAWS CLI運用方針を整理し、SSO導入や権限見直し、設定テンプレート整備などの具体的な改善施策を検討できるようになります。

AWS CLIとは何か|コンソールとの違いと向くケース

AWS CLI(AWS Command Line Interface)とは、コマンドラインからAWSの各種サービスを操作できる公式ツールです。AWSマネジメントコンソールがブラウザ上でGUI操作を行うのに対し、AWS CLIはターミナルからコマンドを入力して操作する点が異なります。

内部的にはAWSが提供するAPIを呼び出しており、コンソールで行える操作の多くをコマンドとして再現できます。EC2やS3、IAMといった主要サービスはもちろん、数百を超えるAWSサービスに対応しているため、一度使い方を覚えれば幅広い業務に応用できるのも特徴です。

コンソールとの違いと使い分け

AWSマネジメントコンソールは視覚的に操作でき、初めてAWSに触れる方でも直感的に扱える点がメリットです。一方でAWS CLIは、繰り返し作業やスクリプトによる自動化、複数リソースの一括操作に適しています。

たとえば、数十台のEC2インスタンスの状態を一括確認したい場合、コンソールでは画面を何度も切り替える必要がありますが、AWS CLIであれば1つのコマンドで完結します。

使い分けの目安】

  • コンソールが向く場面:日常的な確認作業、単発の設定変更、視覚的な把握を優先したい場合
  • AWS CLIが向く場面:定型作業の自動化、複数リソースの一括操作、スクリプトによる再現性の確保

向くケース・向かないケース

AWS CLIが向くケースとしては、以下が挙げられます。

  • 同じ操作を複数の環境・アカウントに対して繰り返す場合
  • CI/CDパイプラインなど、自動化されたワークフローに組み込む場合
  • インフラ構成をコードやスクリプトとして再現性を持たせたい場合
  • 障害対応時に複数リソースの状態を素早く一括取得したい場合

一方で、GUIでの視覚的な確認を重視する初学者や、単発かつ低頻度の作業しか行わない場合は、無理にAWS CLIを導入せずコンソールで十分なケースもあります。用途や担当者のスキルレベルに応じて、両者を柔軟に使い分ける姿勢が重要です。

v2を選ぶ理由(v1との違い)

現在新規に導入する場合は、AWS CLI v2の利用が推奨されます。主な理由は以下のとおりです。

  • SSOをネイティブサポート:AWS IAM Identity Center(SSO)を利用した認証に標準対応しており、v1で必要だった追加のプラグイン導入が不要
  • 統一されたインストーラー:自動プロンプト機能や統一インストーラーにより、複数OS環境でも一貫した手順で導入できる
  • 自己更新機能:`aws –version`確認時に最新化を促すメッセージが表示されるなど、運用担当者の負担を軽減する工夫がある

すでにv1で運用している場合も、認証まわりの安全性向上のためv2への移行を検討することをおすすめします。

図1|AWS CLI v1とv2の主な違い

インストールから初回動作確認まで

OS別のインストール手順

AWS CLI v2は、Windows・macOS・Linuxのいずれの環境でも公式のインストーラーから導入できます。

  • Windows:MSIインストーラーを実行するだけで導入が完了
  • macOS:pkgファイルを実行して導入
  • Linux:zipファイルを展開し、`unzip awscliv2.zip`、`sudo ./aws/install`という2つのコマンドを実行するだけで導入が完了

社内で複数のOSが混在する場合でも、基本的な手順はほぼ共通しているため、導入マニュアルを1つ用意しておけば展開しやすくなります。特にリモートワーク環境が混在する組織では、端末のOSがばらばらになりがちなため、OSごとの手順をまとめた社内Wikiを用意しておくと問い合わせ対応の負担を減らせます。

バージョン確認とアップデート方針

インストール後は、ターミナルで`aws –version`を実行し、正しくインストールされているかを確認します。バージョンが古い場合、新しい認証方式や機能に対応できないことがあるため、定期的なアップデート方針をあらかじめ決めておくとよいでしょう。特にセキュリティに関わる修正が含まれるアップデートについては、社内周知のタイミングをルール化しておくことをおすすめします。半期に一度など、棚卸しのタイミングにあわせてバージョン確認を組み込んでいる企業もあります。

初期設定とログイン確認の流れ

初期設定にはいくつかの方法があります。SSOを利用する場合の基本的な流れは以下のとおりです。

1. `aws configure sso`を実行し、対話形式でSSOの開始URL・リージョンなどを設定する

2. `aws sso login`でブラウザ経由の認証を行う

3. `aws sts get-caller-identity`を実行し、現在使用しているIAMユーザーまたはロールの情報を確認する

なお、従来型のアクセスキーを用いる場合は`aws configure`を実行し、アクセスキーID・シークレットアクセスキー・リージョン・出力形式を入力します。SSOを利用した場合は`aws sso login`を経由するため、認証情報管理の観点からもより安全な運用が可能になります。

この一連の流れを社内の導入手順書として整備しておくと、新しく参加したメンバーもスムーズに初回設定を終えられます。

つまずきやすいポイント

初回設定でつまずきやすいポイントとしては、以下が挙げられます。

  • 環境変数の`PATH`にAWS CLIの実行ファイルが正しく登録されていない
  • v1とv2が混在しており、意図しないバージョンが実行されている
  • リージョンが未設定のまま実行し、エラーが発生する
  • SSOセッションの有効期限が切れているにもかかわらず、古い認証情報を参照してしまう

これらはインストール直後に`aws –version`と`aws sts get-caller-identity`をセットで実行し、想定通りの結果が返るかを確認する習慣をつけることで、多くの場合未然に防ぐことができます。

安全な認証方式の選び方

AWS CLIを安全に運用するうえで、認証方式の選定は最も重要なポイントの一つです。認証情報管理を誤ると、意図しないアカウントへのアクセスや権限の悪用につながる可能性があるため、慎重に検討する必要があります。

ルートユーザーを使わない

AWSアカウントのルートユーザーは、すべての操作が可能な強力な権限を持っています。日常的な操作にルートユーザーを使用することは推奨されておらず、IAMユーザーやIAM Identity Centerを通じたロールベースのアクセスに切り替えることが基本方針となります。

ルートユーザーの基本的な保護策

  • 認証情報は緊急時のみ使用し、普段は金庫や社内の限られた担当者のみがアクセスできる状態で保管する
  • MFA(多要素認証)を必ず設定する
  • ログイン履歴を定期的にCloudTrailで確認し、想定外のアクセスがないかをチェックする

SSOを第一候補にする理由

AWS IAM Identity Center(旧AWS SSO)を利用すると、複数のAWSアカウントに対して一元的にユーザー管理・認証を行えます。ユーザーは`aws configure sso`で一度設定を行えば、`aws sso login`によって短時間で認証情報を取得でき、長期間有効なアクセスキーを保持する必要がありません。

主なメリット】

  • 認証情報の有効期限が短く、万が一漏えいした場合の被害範囲を限定できる
  • 退職者や異動者のアクセス権をIAM Identity Center側で一括管理できる
  • 組織のディレクトリサービスと連携させることで、入退社に伴うアカウント管理の手間をさらに軽減できる

AssumeRoleでの権限切り替え

複数のAWSアカウントを横断して作業する場合、AssumeRoleという仕組みを使うことで、一時的に別アカウントのロールへ権限を切り替えられます。

これにより、アカウントごとに個別の認証情報を保持する必要がなくなり、権限管理がシンプルになります。IAM Identity CenterとAssumeRoleは併用可能であり、SSOでログインしたうえで特定のロールにAssumeRoleするという構成が実務では広く採用されています。

この構成であれば、開発アカウントと本番アカウントを行き来する際も、同じ認証入口から安全に切り替えられます。

アクセスキーを使う場面

多くの場合SSOやAssumeRoleが推奨されますが、一部のCI/CDツールや、SSOに対応していない古いシステムとの連携では、アクセスキーを使わざるを得ない場面もあります。その場合も、可能な限り一時クレデンシャルを併用する、あるいはアクセスキーの利用範囲を最小限のIAMポリシーに絞るといった対策が重要です。

長期間利用していないアクセスキーが放置されていないか、定期的に棚卸しを行う運用も欠かせません。棚卸しの際は、最終利用日時が確認できるIAMの認証情報レポートを活用すると効率的です。

設定の優先順位とMFA

AWS CLIの認証情報は、環境変数、`~/.aws/credentials`、`~/.aws/config`といった複数の場所に設定可能です。これらが重複して設定されている場合、AWS CLIには優先順位があり、一般的に環境変数が最も優先され、次いでコマンドラインオプション、その後`credentials`ファイル、`config`ファイルの順に参照されます。

意図しない認証情報が使われることを防ぐためにも、`AWS_PROFILE`環境変数を明示的に指定する運用をおすすめします。また、IAMユーザーでの認証や重要な操作を行う際には、MFA(多要素認証)を有効化しておくことで、パスワードやアクセスキーが漏えいした場合のリスクをさらに下げられます。

ハードウェアトークンやスマートフォンアプリを用いたMFAは、比較的低コストで導入できる対策として多くの企業で採用されています。

認証方式セキュリティ水準運用のしやすさ主な利用シーン
IAM Identity Center(SSO)高い
短期認証情報
高い
一元管理
通常業務・複数アカウント運用
AssumeRole高い
一時クレデンシャル
中程度クロスアカウントでの権限切り替え
アクセスキー低〜中
長期認証情報
低い
個別管理が必要
SSO非対応システムとの連携

プロファイル設計と運用の標準化

複数のAWSアカウントや環境を扱う場合、AWS CLIの「プロファイル」機能を活用することで、切り替え作業をシンプルにできます。

命名規則とデフォルトプロファイルの回避

プロファイルは`~/.aws/config`および`~/.aws/credentials`に、それぞれ名前を付けて複数登録できます。命名規則を決めずに運用すると、「どの環境のプロファイルか分からなくなる」といった事故につながりやすいため、環境名や用途を含めた命名規則をあらかじめ決めておくことが重要です。

命名例

  • `prod-readonly`:本番環境・参照専用
  • `dev-admin`:開発環境・管理者権限

このように環境名と権限範囲を組み合わせた命名にしておくと、一覧を見ただけで用途が把握しやすくなります。また、名前を指定しない場合に使われる「デフォルトプロファイル」は、意図せず本番環境を操作してしまうリスクがあるため、極力使用を避け、常に`AWS_PROFILE`で明示的に指定する運用が安全です。

リージョン・出力形式の統一

プロファイルごとにリージョンや出力形式(JSON、テキストなど)を設定できますが、チーム内でバラバラの設定になっていると、コマンド実行結果の解釈にずれが生じることがあります。

社内で標準となるリージョン・出力形式をあらかじめ決めておき、テンプレートとして共有することをおすすめします。特にスクリプトで結果を機械的に処理する場合は、出力形式をJSONに統一しておくと、後工程での加工がしやすくなります。

設定テンプレートの配布

新しくAWS CLIを導入するメンバーが増えるたびに、一から設定方法を説明するのは非効率です。`~/.aws/config`のひな形をテンプレートとして用意し、必要な箇所だけを書き換えて利用できる状態にしておくことで、導入時の手間を減らし、設定ミスも防ぎやすくなります。

テンプレートに含めておきたい項目

  • 命名規則
  • リージョン・出力形式
  • SSOの開始URLなど共通で使う値

社内ポータルなどにテンプレートを常設しておき、更新があった際にも周知しやすい場所に置いておくとよいでしょう。

複数アカウント運用での注意点

複数アカウントを扱う場合、意図しないプロファイルで操作してしまう事故を防ぐため、実行前に`aws sts get-caller-identity`で対象アカウントを確認する習慣をつけることが推奨されます。

特に削除や変更を伴う操作の前には、必ず対象環境を再確認するルールを社内で徹底するとよいでしょう。ターミナルのプロンプトに現在のプロファイル名を表示させる設定を行っている企業も多く、視覚的に気づきやすくする工夫も有効です。

図2|複数アカウント運用におけるプロファイル切り替えのイメージ

権限設計と監査の基本

AWS CLIを安全に使い続けるためには、認証方式の選定だけでなく、権限設計と操作履歴の監査体制も欠かせません。

最小権限の考え方

IAMポリシーを設計する際は、業務上必要な操作のみを許可する「最小権限の原則」に従うことが基本です。すべての操作を許可する広範なポリシーを付与してしまうと、誤操作や不正アクセス時の被害が拡大しやすくなります。

業務内容に応じて、必要なサービス・操作範囲を洗い出したうえでポリシーを設計することが重要です。最初から完璧な権限設計を目指すのではなく、まずは必要最小限の範囲から始め、業務の変化に応じて段階的に見直していくアプローチが現実的です。

読み取りと変更を分ける

参照系の操作(読み取り専用)と、作成・変更・削除を伴う操作は、権限を分けて管理することが推奨されます。日常的な確認作業には読み取り専用の権限を割り当て、変更を伴う操作は別のロールやAssumeRoleを経由して行う運用にすることで、意図しない変更操作のリスクを減らせます。

運用例】

  • 通常業務用のロールにはAWS管理ポリシーの`ReadOnlyAccess`を割り当てる
  • 変更を伴う操作は、申請フローを経てAssumeRoleする

この分離により、担当者が普段は読み取り専用ロールで作業し、変更が必要な場面だけ昇格するという運用を実現でき、うっかりミスによるリソースの削除や設定変更を未然に防ぎやすくなります。

実行ログの確認方法

AWS CLIを含むAWSリソースへの操作履歴は、AWS CloudTrailで記録・確認できます。誰が・いつ・どのような操作を行ったかを追跡できるため、定期的にログを確認する運用を組み込んでおくことをおすすめします。

あわせて整備しておきたいポイント

  • 権限設計の見直しには、AWS IAM Access Analyzerのような支援機能を活用し、想定より広い権限が付与されていないかを効率的に洗い出す
  • 監査ログの保存期間や参照権限を、あらかじめ社内ルールとして定めておく

総務省が公表する情報セキュリティ関連の資料でも、アクセス権限の定期的な棚卸しの重要性が指摘されており、クラウド環境においても同様の考え方が求められています。

自動化・CI/CDで使うときの注意点

AWS CLIは、CI/CDパイプラインなど自動化された環境でも広く利用されています。ただし、人が操作する場合とは異なる注意点があります。

短期認証を使う

CI/CD環境でアクセスキーを直接埋め込む運用は、キーの漏えいリスクが高いため避けるべきです。近年はOIDC(OpenID Connect)を利用し、CI/CDサービスとAWSの間で一時クレデンシャルを発行する仕組みが広く使われています。

これにより、長期間有効なアクセスキーを保存せずに済み、認証情報管理の負担も軽減できます。GitHub ActionsやGitLab CIなど、主要なCI/CDサービスの多くがOIDC連携に対応しているため、新規にパイプラインを構築する際はこの方式を前提に設計するとよいでしょう。

シークレットの管理方法

やむを得ずアクセスキーやパスワードなどのシークレットを扱う場合は、スクリプトやコード内に直書きするのではなく、AWS Secrets ManagerやAWS Systems Manager Parameter Storeといった管理サービスを利用することが推奨されます。

これらのサービスを使うことで、シークレットの一元管理やアクセス権限の制御、ローテーションが行いやすくなります。特にSecrets Managerは自動ローテーション機能を備えているため、定期的なパスワード変更の手間を減らせる点もメリットです。

実行環境を分離する

CI/CDの実行環境ごとに、必要最小限の権限を持つロールを個別に割り当てることも重要です。

実行環境分離のポイント

  • 開発・検証・本番といった環境ごとに実行権限を分離し、一つの環境で問題が発生した場合の影響範囲を限定する
  • 自動化スクリプトは何度実行しても同じ結果になる「冪等性」を意識した設計にし、想定外の状態変化やロールバックにも対応しやすくする
  • 本番環境への自動デプロイには、事前の承認ステップを組み込み、意図しない変更が反映されるリスクを抑える

よくある質問

Q.認証エラーが出たときの確認順序は?

A.認証エラーが発生した場合は、まず`aws sts get-caller-identity`を実行し、現在どの認証情報が使われているかを確認します。次に、`AWS_PROFILE`環境変数の指定内容、`~/.aws/config`・`~/.aws/credentials`の設定内容、SSOセッションの有効期限切れの有無、という順で確認すると原因を特定しやすくなります。

SSOセッションが切れている場合は、再度`aws sso login`を実行すれば多くの場合は解消します。それでも解決しない場合は、AWS CLIのバージョンが古くないかもあわせて確認してください。バージョンが古いまま新しい認証方式を利用しようとすると、想定外のエラーが発生することがあります。

Q.権限不足エラーが表示された場合の対処方法は?

A.権限不足のエラーが表示された場合は、実行しているIAMユーザーまたはロールに、必要な操作を許可するポリシーが付与されているかを確認します。AssumeRole経由で操作している場合は、切り替え先のロールに対する権限も併せて確認が必要です。

エラーメッセージには不足しているアクション名が含まれていることが多いため、まずはメッセージの内容を丁寧に読み解くことが近道です。

AWS CLIの運用でよく寄せられる質問には、以下のようなものがあります。

Q. `aws configure`と`aws configure sso`は何が違いますか。

A. `aws configure`はアクセスキーを用いた設定、`aws configure sso`はIAM Identity Centerを利用した設定です。セキュリティの観点からは後者が推奨されます。

Q. リージョンを指定したのにエラーになります。

A. プロファイルごとのリージョン設定と、コマンド実行時のオプション指定が競合していないかを確認してください。

Q. 社内プロキシ環境でAWS CLIがうまく動きません。

A. `HTTPS_PROXY`などの環境変数が正しく設定されているか、ネットワーク管理者に確認することをおすすめします。

Q. SSOとAssumeRoleは併用できますか。

A. 併用可能です。SSOでログインした後、特定のロールにAssumeRoleする構成が広く採用されています。

Q. プロファイルを切り替えたつもりが反映されません。

A. 環境変数`AWS_PROFILE`が別の値で設定されたままになっていないか、まず確認してください。

Q. SSOログインの有効期限はどれくらいですか。

A. 組織のIAM Identity Center設定によって異なりますが、数時間から1日程度に設定されるケースが一般的です。有効期限が切れた場合は再度`aws sso login`を実行してください。

図3|AWS CLIのよくあるトラブルと確認手順のフロー

まとめ|導入前に決めておくべきこと

AWS CLIは、単にコマンドを実行するためのツールではなく、認証・権限・運用ルールまで含めて統制すべき業務基盤です。導入・見直しにあたっては、次の点を一体で検討することが重要です。

  • AWS CLI v2を前提とし、IAM Identity Center(SSO)を認証の第一候補にする
  • プロファイル分離による複数アカウント運用の標準化
  • 最小権限に基づく権限設計と、CloudTrailを用いた監査体制の整備

まずは自社の利用状況を棚卸しし、SSOへの移行やプロファイル設計の見直しから着手することをおすすめします。こうした取り組みは一度に完璧を目指す必要はなく、優先度の高いところから段階的に進めていくことで、現場への負担を抑えながら着実に安全性を高めていけます。

AWS環境の認証・権限設計や運用体制の構築でお悩みの際は、ぜひテクノプロまでお気軽にご相談ください。

監修者

テクノプロ・ホールディングス株式会社

ITエンジニアとして25年のキャリアを持ち、チーフマネージャーとしてテクノプロ・エンジニアリング社にて金融・商社・製造業など多業界でのインフラ基盤構築に従事してきた。2008年から2024年まで、オンプレミス環境でのストレージ・サーバ統合基盤の設計・構築を手掛け、特に生成AI・データ利活用分野のソリューション開発実績が評価されている。現在は技術知見を活かしたマーケティング戦略を推進している。