AWSにLightsailだけを扱うIAMユーザーを作成してみた。

AWSにLightsailだけを扱うIAMユーザーを作成してみました。IAMは Identity and Access Management の略だそうです。IAMユーザーを作成するにあたって以下の手順で実施しました。

  1. ポリシーを作成する。
  2. グループを作成して、ポリシーをグループにアタッチする。
  3. ユーザーを作成して、グループにユーザーを追加する。

まずはLightsailだけを扱うポリシーを作成します。IAMコンソールのダッシュボードからポリシーを選択します。

ポリシーの画面になるので右上の「ポリシーの作成」を押下します。

ポリシーを設定する画面になります。ポリシーエディタを使用するためJSONを選択します。

ポリシーエディタには手入力で以下を記載します。


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lightsail:*"
            ],
            "Resource": "*"
        }
    ]
}

Action に「サービス:APIアクション名」という形式で記載をします。アスタリスクはワイルドカード(任意)という意味で使うようです。Effect は Allow(許可)か Deny(拒否)となります。Resource は対象のリソースとのことです。

Version ですが、日付を変えてみたらエラーになりました。どうもこの日付には意味があるようです。

ポリシーエディタに記載ができたら右下の「次へ」を押下します。ポリシーの設定画面になるので、ポリシー名と説明を入力します。

ポリシー名は LightsailFullAccessPolicy としました。説明には日本語の入力はできないようです。英語での入力です。

このポリシーで定義されている許可 のところにLightsailがフルアクセスで表示されていることを確認します。右下にある「ポリシーの作成」を押下します。

ポリシーが作成されます。

次にグループを作成します。IAMコンソールのダッシュボードからユーザーグループを選択して右上の「グループを作成」を押下します。

ユーザーグループを作成 の画面になります。ユーザーグループ名は LightsailFullAccessGroup としました。

許可ポリシーを添付 のところで先ほど作成したポリシーにチェックを入れます。「ユーザーグループを作成」を押下します。

ユーザーグループが作成されます。

最後にユーザーを作成します。IAMコンソールのダッシュボードからユーザーを選択して右上の「ユーザーの作成」を押下します。

ユーザーの詳細を指定 の画面になるのでユーザー名を入力します。Lightsailの管理コンソールを使いたかったため AWSマネジメントコンソールへのユーザーアクセスを提供する にチェックを入れます。

ユーザータイプは Identity Center を使うほうが推奨らしいのですが使い方がよくわからないので、IAMユーザーのほうを選びました。IAMユーザーの方を選ぶとパスワードを指定する必要があり、その入力をします。

右下の「次へ」を押下します。許可を設定 の画面になります。ユーザーをグループに追加 を選択します。ユーザーに直接ポリシーをアタッチすることもできますが、今回はグループにポリシーをアタッチして、そのグループにユーザーを追加の手順となっています。

ユーザーグループ のところで先ほど作成したグループにチェックを入れます。「次へ」を押下します。

確認して作成 の画面になりますので表示項目の確認をします。


「ユーザーの作成」を押下すると、ユーザーが作成されます。

下部にある csvファイルをダウンロード をしておくと、ユーザー名、パスワード、コンソールサインインURLの記載されたテキストファイルがダウンロードできます。

IAMコンソールのダッシュボードに戻ってIAMリソースを見てみると、ユーザーグループ、ユーザー、ポリシーが作成されている(1になっている)のが確認できます。

IAMユーザー用のURLから管理コンソールにサインインしてみます。アカウントID、ユーザー名、パスワードを入力します。

サインインを押下すると、AWSの管理コンソールにサインインができました。Lightsailの権限しか付与していないためコストの使用状況などは見られないようです。

AWSのルートユーザーの認証にMFAデバイスを設定しようとしたけど。

AWSのルートユーザーのアカウントにMFA(他要素認証)の設定をしてみました。AWSの管理コンソールに「MFAが割り当てられていません」の表示が出たままだったので、MFAデバイスの設定をします。

「MFAを割り当てる」を押下するとデバイスの設定の画面になります。認証方法にパスキーが使えるようなので、任意のデバイス名を入力してパスキーを選択しました。

ところが「このデバイスでパスキーを作成するか、別のデバイスを使用している場合は今すぐ接続してください」となっています。使用していたパソコンは認証をさせるような機能はなく、また別の認証デバイスも持っていなかったのでキャンセルをしたら「セキュリティキーを登録できません」となってしまいました。。

仕方がないのでスマホでAWSの管理コンソールにサインインしてやってみました。スマホの場合、パスキーのデバイスの選択が表示されたので「このデバイス」を選択して進めたのですが、理由はわかりませんが「セキュリティキーの登録中にエラーが発生しました」となり、スマホでも設定ができませんでした。。

残念ながらパスキーでは無理なようなので認証アプリケーションのほうにします。認証アプリケーションではスマホに認証アプリが必要です。Google Authenticatorをスマホにインストールしました。AWSの管理コンソールを操作しているのはパソコンの方です。

Google Authenticatorのスクリーンショットを載せておこうと思ったのですが、Authenticatorのスクリーンショットを撮ってもスマホ画面が真っ黒になってしまいます。セキュリティアプリのためかそういう仕様なのだと思います。ですので、Authenticatorのスクリーンショットはありません。

認証アプリケーションを選択するとデバイスの設定の画面になります。QRコードを表示させてスマホで読み取ります。

そうすると、Google Authenticatorのほうにセキュリティーコードが表示されます。これを画面に入力します。2回の入力が必要でスマホのほうで待っているとセキュリティーコードの表示が変わります。

「MFAを追加」を押下するとMFAの設定が完了します。識別子のところに追加されたデバイスが表示されます。

管理コンソールからサインアウトして、もう一度サインインをしてみます。今まで通り、ルートユーザーのメールアドレス、および、パスワードを入力した後にMFAコードの入力が求められるようになりました。

Authenticatorに表示されているセキュリティコードを入力して送信を押下すると、無事サインインができました。