【AWS_25】WindowsクライアントでAWS CLI を実行してAWSリソース(EC2、S3)へ接続する

個人のWindowsクライアント(Windows11 Home)へAWS CLIをインストールしてAWSリソース(EC2、S3)へ接続できるか検証してみます。以下の記事を参考にさせていただきましたありがとうございました。
ただ、アクセスキーを作成する際、AWSからIAMではなく、AWS IAM Identity Center の利用を推奨するとメッセージが出ていたので「AWS IAM Identity Center」については、今後の課題としたいと思います。取り急ぎ体感してみたいのでアクセスキーはIAMユーザーで作成していきたいと思います。
Windows クライアント端末で AWS CLI を使えるようにする
https://blog.serverworks.co.jp/aws-cli-on-windows-client-devices
AWS CLIでS3を操作するコマンド一覧
https://qiita.com/uhooi/items/48ef6ef2b34162988295
目次
AWS CLI のインストール
以下ドキュメントの内の「Windows」項を参考に個人のWindowsクライアント(Windows11 Home)へAWS CLI をインストールします。
AWS CLI の最新バージョンのインストールまたは更新 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html
Windows 用の AWS CLI MSI インストーラ (64 ビット) をダウンロードします。 https://awscli.amazonaws.com/AWSCLIV2.msi
ダウンロードしたmsiファイルを右クリック「インストール」で実行します。

「Next」をクリックします。

「I accept the terms in the License Agreement」のライセンス契約の条件に同意しますにチェックを入れて「Next」をクリックします。

「Next」をクリックします。

「Install」をクリックします。

インストールが完了したので「Finish」をクリックします。

バージョンを確認するため Windows PowerShell を起動して、以下コマンドを実行します。(※コマンドプロンプトでも大丈夫です)
aws –version

AWS CLI 用の IAM ユーザーを作成
個人のWindowsクライアント(Windows11 Home)でAWS CLI コマンドを実行して AWS リソースを操作するには、IAM ユーザーの権限が必要となります。
AWS CLI 用の IAM ユーザーを作成する際、個人のWindowsクライアントへ埋め込む用のアクセスキー(アクセスキーとシークレットアクセスキーのペア)も同時に作成します。
AWS マネジメントコンソールのIAM コンソールで [ユーザー] > [ユーザーの作成] をクリックします。

任意の「ユーザー名」を入力、「AWSマネジメントコンソールへのユーザーアクセスを提供する – オプション」をチェックし、「IAMユーザーを作成します」を選択します。
任意の「カスタムパスワード」を入力、「ユーザーは次回のサインイン時に新しいパスワードを作成する必要があります – 推奨」のチェックを外し「次へ」をクリックします。

「許可のオプション」は、「ポリシーを直接アタッチする」を選択、「許可ポリシー」は、「AmazonEC2FullAccess」を検索してチェックを入れ、「次へ」をクリックします。

内容を確認して「ユーザーの作成」をクリックします。

「.csvファイルをダウンロード」をクリックし、CSVファイルをダウンロードしておきます。

アクセスキーの作成
ユーザー作成後にユーザー名(cli-user)をクリック、「セキュリティ認証情報」タブを選択し、「アクセスキーを作成」をクリックします。

「コマンドラインインターフェイス(CLI)」を選択、画面下の「上記のレコメンデーションを理解し、アクセスキーを作成します。」にチェックを入れて、「次へ」をクリックします。

説明タグは何も入力せずに「アクセスキーを作成」をクリックします。

「.csvファイルをダウンロード」からCSVファイルをダウンロードした後、「完了」をクリックします。
シークレットアクセスキーを表示またはダウンロードできる唯一の機会です。後で復元することはできないのでここで必ず確認、もしくはダウンロードしておいてください。

「セキュリティ認証情報」タブの「アクセスキー」が更新されました。

個人のWindowsクライアントへIAM ユーザーのアクセスキーを設定
ダウンロードしたファイルの中身を確認して、aws configure コマンドでWindows クライアント端末にアクセスキー(アクセスキーとシークレットアクセスキーの文字列)を設定します。
aws configure を使用したクイック設定 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-configure.html#cli-configure-quickstart-config
Windows PowerShell を起動して aws configure コマンドを実行し、対話形式でアクセスキーとシークレットアクセスキーを設定します。


設定したクレデンシャル情報は、AWS CLI をインストールしたユーザーのホームディレクトリの「.aws」の配下に、以下のように格納されています。

AWS CLI コマンドを実行してEC2を操作する
EC2インスタンスの一覧を取得
準備ができたので、EC2 の情報を取得するコマンドを実行してみます。
Windows PowerShell を起動して、以下コマンドを実行すると結果が160行返されました。一部のみ画像を添付します。
aws ec2 describe-instances


EC2インスタンスをコマンドで停止
停止には先程確認したインスタンスIDの情報が必要になります。
EC2インスタンスID:i-0db2dc7c9678d99c9
AWSコンソール、AWS CLIともに実行中(running)であることを確認しています。

停止コマンド
aws ec2 stop-instances –instance-ids インスタンスID
停止してみます。
aws ec2 stop-instances –instance-ids i-0db2dc7c9678d99c9

停止(stopped)しました!

EC2インスタンスをコマンドで起動
停止したEC2インスタンスを起動してみます。
起動コマンド
aws ec2 start-instances –instance-ids インスタンスID
起動してみます。
aws ec2 start-instances –instance-ids i-0db2dc7c9678d99c9

起動しました!

AWS CLI コマンドを実行してS3を操作する
次に S3 もAWS CLIコマンドで操作してみます。
S3 のバケット名の確認とファイルのアップロード、削除を検証してみます。
バケットの一覧を表示する
バケットの一覧を表示するコマンド
aws s3 ls
コマンドを実行すると「AccessDenied」となりました。よく考えたらAWS CLI 用の IAMユーザーへS3に関するポリシーを割り当てていませんでした。

IAMユーザー(cli-user)へ「AmazonS3FullAccess」ポリシーを割り当てます。

あらためてバケットの一覧を表示するコマンドを実行するとバケット名が表示されました。
aws s3 ls

ローカルのファイルをバケットへアップロードする
C:\Users\admin\index.html ファイルをバケット直下へアップロードしてみます。
ローカルのファイルをバケットにアップロードするコマンド
aws s3 cp {ファイルパス} s3://{バケット名}/{パス}
aws s3 cp index.html s3://mybucket-20250704-01/

アップロードされました!

バケット内のファイルを削除する
アップロードしたファイルをAWS CLIで削除してみます。
バケットのファイルを削除する
aws s3 rm s3://{バケット名}/{ファイルパス}
aws s3 rm s3://mybucket-20250704-01/index.html

削除されました!

まとめ
今回は、個人のWindowsクライアント(Windows11 Home)へAWS CLIをインストールしてAWSリソース(EC2、S3)へ接続できるか検証してみました。実際は、AWS内のサーバ間で実装されるような気もしていますが、そのあたりはおいおい検証していければと思います。
以下、他の記事をまとめた一覧です。AWSもまとめています。