AWS CLI を簡単に使い始める方法を教えてください

2022.10.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

マネジメントコンソールを利用した手順書を作成し、社内で運用しています。

マネジメントコンソールを利用した手順ですと、画面のアップデートが行われた際に、手順書を更新する必要があります。 そこで、AWS CLI を利用した運用に切り替えたいと考えています。

AWS CLI を利用するのに、どのような設定をすれば良いですか。 AWS CLI を簡単に使い始める方法を教えてください。

どう対応すればいいの?

セキュリティの観点から、アクセスキーを使わずに AWS CLI を使用する方法をお勧めしています。

下記のブログで、4つの方法をご紹介していますので、どの方法がご自身の環境に適しているか、一度ご検討ください。 [3]

以下では

  • アクセスキーが不要
  • 環境構築・運用が不要

が長所となる、CloudShell 上で AWS CLI を使用する方法をご紹介します。

CloudShell 上で AWS CLI を使用するための設定

  • 必要な設定(権限)
  • 操作方法

について、次の1〜4のステップでご説明いたします。

  1. CloudShell で操作を行う IAM ユーザー/ロール を用意する
  2. マネジメントコンソールにログインする
  3. CloudShell のアイコンをクリックして、CloudShell を起動する
  4. CloudShell 上で各サービスを操作するコマンドを実行する

1. CloudShell で操作を行う IAM ユーザー/ロール を用意する

一例となりますが、下記 (A)、(B) どちらかの方法を選択していただけますでしょうか。

  • (A) 既存の「AdministratorAccess」の権限を持つ管理者ユーザー/ロールを使用する
  • (B) CloudShell で操作を行うための IAM ユーザーを新規に作成する

CloudShell の操作を効率よくお試しいただくためには、 まずは、(A)既存の管理者ユーザーで CloudShell をお試しいただき、 コマンドの実行などが、CloudShell 上で問題なく実行できることをご確認いただいた上で、 (B)運用を行うための IAMユーザー を新規に作成してください。

(B) CloudShell で操作を行うための IAM ユーザーを新規に作成する

新規にIAM ユーザーを作成し、次の2種類のIAMポリシーをアタッチしてください。

  • AWSCloudShellFullAccess
  • 各サービスの操作を行うための カスタマー管理ポリシー

適宜、必要な権限の付与をお願いします。

EC2インスタンスを起動・停止するための、カスタマー管理ポリシーの例:

sample-policy.json

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": [
                "arn:aws:ec2:ap-northeast-1:1234567890AB:instance/*"
            ]
        }
    ]
}

2. マネジメントコンソールにログインする

1 で選択した IAM ユーザー/ロール で、マネジメントコンソールにログインしてください。

3. CloudShell のアイコンをクリックして、CloudShell を起動する

CloudShell のアイコン は、マネジメントコンソール画面の上部右側に表示されています。 アイコンをクリックし、CloudShell を起動します。

4. CloudShell 上で各サービスを操作するコマンドを実行する

CloudShell 上でコマンドを実行します。 コマンドは、ログインした IAM ユーザー/ロール の権限で実行されます。

参考資料

[1] AWS の SDK とプログラミングツールキット

[ツールタイプ別で閲覧する]-[コマンドラインツール]-[AWS CLI]

[2] AWS Command Line Interface とはどのようなものですか。 - AWS Command Line Interface

[3] AWSのCLI作業はどこで行う? 安全に管理するパターンとメリデメ集 | DevelopersIO

[4] AWS再入門ブログリレー2022 AWS CloudShell 編 | DevelopersIO