LoginSignup
2
1

【RHEL】アクセスキーの登録なしでAWS CLIを利用する

Last updated at Posted at 2024-04-16

実現したいこと

・最新版のAWS CLIを導入する
・アクセスキーID/シークレットアクセスキーを使用してAWSリソースの操作を行うのはセキュリティ観点において非推奨です。
⇒アクセスキーID/シークレットアクセスキーの発行/登録は行わずに、必要な操作権限(IAMポリシー)をアタッチしたIAMロールを利用してAWS CLIを利用を制御します。

実施環境

サーバ:Amazon EC2
OS:RHEL-8.9.0_HVM-20240213-x86_64-3-Hourly2-GP3
追加ソフト:Python3.6.8
IAMロール:以下2つのポリシーをアタッチ

  • AmazonEC2FullAccess :EC2操作のため
  • AmazonSSMManagedInstanceCore :SSM接続のため

導入手順

RHELの場合、AWS CLIはデフォルトでインストールされていないため、以下の手順で導入します。本手順はrootユーザで実行する想定とします。
※「pip install awscli」でもインストール可能ですが、バージョン1がインストールされます

1.AWS CLIのインストーラファイルをダウンロード

以下コマンドでダウンロード。

[root@ip-XX-XX-XX-XX ~]#curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

インターネットに出られない環境においては、以下URLからダウンロードしサーバ内に持ち込んでください。
https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip

2.インストーラの解凍

インストーラを解凍します。Linux ディストリビューションに組み込み unzip コマンドがない場合は、同等のコマンドを使用して解凍。あるいはunzipをインストールします。

[root@ip-XX-XX-XX-XX ~]#unzip awscliv2.zip

# unzipが導入されいない場合
[root@ip-XX-XX-XX-XX ~]#dnf install unzip

3.インストールプログラムの実行

インストールコマンドは、新しく解凍された install ディレクトリにある aws という名前のファイルを使用します。

[root@ip-XX-XX-XX-XX ~]# ./aws/install
You can now run: /usr/local/bin/aws --version

バージョンを確認します。

[root@ip-XX-XX-XX-XX ~]#aws --version
aws-cli/2.15.38 Python/3.11.8 Linux/4.18.0-513.18.1.el8_9.x86_64 exe/x86_64.rhel.8 prompt/off

4.awscliコマンドの動作確認

awscliコマンドの動作確認を行います。
IAMロールのポリシーで設定している権限の操作ができることと、権限がない操作に関しては実施できないことを確認します。
※「aws configure」を使用したアクセスキーID/シークレットアクセスキーの登録は不要です。

# インスタンスIDを参照して、EC2インスタンスの情報を取得するコマンド
[root@ip-10-0-10-29 ~]# $ aws ec2 describe-instances --instance-ids ${instance-id}
{
    "Reservations": [
        {
            "Groups": [],
            "Instances": [
                {
                    "AmiLaunchIndex": 0,
                    "ImageId": "ami-XXXXXXXXXXXXXXX",
                    "InstanceId": "i-XXXXXXXXXXXXXXXX",
                    "InstanceType": "t2.micro",
                    "KeyName": "sample-key",
                    "LaunchTime": "2024-04-16T13:07:36+00:00",
                    "Monitoring": {
                        "State": "disabled"
                    ---------------------------------------(省略)

# s3バケットの一覧を表示するコマンド
[root@ip-XX-XX-XX-XX ~]# aws s3 ls
An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied

以上

※参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1