AWS CLIをWindows 環境で使う

AWS CLIをWindows CMD環境で使う:IAMロール(role-arn)によるセキュリティ強化ハンズオン

1. はじめに

お世話になっております。yasuokaです。
現場に入場しましたが、環境設定で躓いた部分をまとめてみました。

AWS CLIを使用してAWSリソースにアクセスしてみたいと思います。
今回は、AWS CLIのインストールから、IAMロール(role-arn)を利用してセキュアにAWSリソースにアクセスする方法を解説します。特に、IAMロールを使うことによるセキュリティ向上のメリットと、実際の設定手順をWindows環境で確認していきます。

目次

・AWS CLIのインストール
・IAMロールを使ったセキュアなアクセス
・IAMロールを設定しない場合との比較
・ハンズオン:S3バケットの一覧を取得


2. AWS CLIのインストール手順

まず、AWS CLIをWindowsにインストールする手順です。

インストール手順

  1. AWS CLIの公式ダウンロードページにアクセスし、Windows用のAWS CLIインストーラーをダウンロードします。
  2. ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを完了させます。
  3. インストールが完了したら、cmdを開いて以下のコマンドを入力し、AWS CLIが正しくインストールされているか確認します。
    cmd aws –version

    これで、AWS CLIがインストールされ、バージョンが表示されれば準備完了です。

3. IAMロール(role-arn)を使ったセキュリティ強化

AWSでは、アクセスキーとシークレットキーを直接使う代わりに、IAMロールを使うことでセキュリティを向上させることができます。

IAMロールを使用するメリット

一時的な認証情報:IAMロールを使うと、一時的な認証情報を使用するため、アクセスキーが漏洩してもリスクが最小限に抑えられます。
最小権限の原則:ロールに割り当てた権限のみが使用され、不要な権限を持つアクセスキーを避けられます。
セキュリティトークンの自動失効:一時的な認証情報には有効期限が設定されているため、定期的な更新が不要です。

role-arnの設定

次に、role-arnを使ってS3のバケット一覧を取得する方法を紹介します。~/.aws/configファイルに設定を追加します。

ステップ 1: AWS CLIの設定

  1. cmdを開き、以下のコマンドを実行してAWS CLIの設定を行います。設定するのは、アクセスキーとシークレットキーです。

cmd aws configure

このコマンドを実行すると、以下のように聞かれますので、事前にIAMユーザーとして発行したアクセスキーを入力します。
AWS Access Key ID [None]: <アクセスキーID>
AWS Secret Access Key [None]: <シークレットアクセスキー>
Default region name [None]: <リージョン> (例: ap-northeast-1)
Default output format [None]: json

ステップ 2: role-arnの設定

次に、~/.aws/configにrole-arnを設定します。このファイルは通常、以下のパスに保存されています。

ファイルパス:
C:\Users\<ユーザー名>.aws\config

configファイルに以下のような設定を追加します。
[profile my-role]
role_arn = arn:aws:iam::123456789012:role/MyRole
source_profile = default
この設定を使うと、my-roleというプロファイルを使用する際に、指定されたロールを引き受けてS3の操作ができます。


4. ハンズオン:S3バケットの一覧を取得

次に、実際にIAMロールを使ってS3バケットの一覧を取得してみます。

ステップ 1: S3バケット一覧の取得コマンド

以下のコマンドをcmdで実行して、my-roleプロファイルを使ってS3バケットの一覧を取得します。
cmd
aws s3 ls –profile my-role

これにより、my-roleに設定したロールを使ってS3のバケット一覧が取得できるはずです。


5. IAMロールを設定しない場合との比較

もし、role-arnを設定せずにアクセスキーとシークレットキーを直接使用した場合、以下の点でセキュリティリスクが生じます。

長期間有効なアクセスキー:アクセスキーが有効であり続けるため、漏洩リスクが高くなります。
最小権限が守れない:アクセスキーに割り当てた全ての権限を使えるため、不要な操作が可能になってしまいます。

一方で、role-arnを使用した場合、アクセス権限はIAMロールに限定され、一時的なセキュリティトークンで操作が行われるため、よりセキュアなアクセスが可能です。


6. トラブルシューティング:プロキシ環境での注意点

プロキシ環境下でrole-arnを使ってアクセスする際、AWS STSへのリクエストがプロキシ設定でブロックされることがあります。その場合、以下の点を確認してください。

プロキシ設定を正しく行う

  • AWS CLIでプロキシを設定するには、環境変数にプロキシ情報を設定します。

cmd
set HTTPS_PROXY=http://<プロキシアドレス>:<ポート>
set HTTP_PROXY=http://<プロキシアドレス>:<ポート>

STSサービスへのアクセスが許可されているか確認
プロキシがAWSのSTSエンドポイント(sts.amazonaws.com)へのリクエストをブロックしていないか確認します。必要に応じて、プロキシ設定を変更します。


7. まとめ

IAMロール(role-arn)を使うことで、アクセスキーやシークレットキーを直接使用するよりもセキュリティが強化されます。特に、Windows環境でAWS CLIを使う際に、短期間の一時的な認証情報と最小権限を守ることが重要です。プロキシ設定に注意しつつ、role-arnを活用してセキュアなAWSアクセスを実現しましょう。


参考リンク

AWS CLI ドキュメント
IAMロールの使い方

Last modified: 2024-09-08

Author