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にインストールする手順です。
インストール手順
- AWS CLIの公式ダウンロードページにアクセスし、Windows用のAWS CLIインストーラーをダウンロードします。
- ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを完了させます。
- インストールが完了したら、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の設定
- 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アクセスを実現しましょう。