【はじめての AWS】AWS アカウント作成後の初期設定 1 – IAM

AWS#3_AWS初期設定_IAM

こんにちは、YaaRuu です!

AWS アカウント作成後はすぐに仮想サーバーなどを構築することができますが、その前に AWS を利用する上で実施しておいた方が良い対応があります。

AWS では様々なクラウドサービスが提供されており、それらを自由に利用することができます。
そのため容易にアカウントが悪用されないよう自分の環境を管理する必要があります。

どこまで対応するかは AWS を利用する状況によって違ってくるかと思いますが、無料プランでも実施しておいた方が良い対応を整理してみました。

今回は AWS アカウント作成後の初期設定– IAM に関する部分を記事にしております。

もしお役に立つような情報があれば幸いです。それではどうぞよろしくお願いいたします。

1. 背景

初期設定の対応を行う背景について記載します。

AWS では「責任共有モデル」という考え方があります。

・参考 URL
 責任共有モデル – Amazon Web Services (AWS)

責任部分の考え方の例として、AWS 環境を家だとして「家を借りる側」と「家を作って貸す側」に分けて考えてみます。

家を借りる側は、家の中での家具の配置や家の鍵を誰が管理するかなどを自由に決めることができます。

もし仮に、テレビやエアコンの電源を切り忘れて電気代が想定より高くなったり、家の鍵を施錠していないことが原因で見知らぬ人に侵入されたとしても、それは家を借りる側の責任となります。
(電源をきちんと切っていれば不要な電気代を抑えられたかも、施錠していれば不正な侵入を防げたかも、など)

家を作って貸す側は、家の建築基準を満たしていると明言して貸している場合、耐震や防火性能などが基準を満たしていることに責任を持ちます。

このように「家を借りる側」と「家を作って貸す側」では責任の範囲は異なります。

【家を例にした場合】

  • 家を借りる側の責任 : 家電の電源 ON / OFF や施錠を管理しているかどうかなど
  • 家を作って貸す側の責任 : 家の耐震や防火性能が建築基準を満たしているかどうかなど

AWS を利用する際も「AWS 利用者側」と「AWS 側」で責任の範囲が異なります。

【AWS の場合】

  • AWS 利用者側の責任 : クラウド内のセキュリティに対する責任
                (自分自身のデータ、オペレーティングシステムなど)
  • AWS 側の責任 : クラウドのセキュリティに対する責任
             (ハードウェア、リージョン、ストレージなど)

アカウント管理などは AWS 利用者側が注意して行う必要があります。

どのユーザーで AWS 環境へアクセスするか、またクラウドサービスの利用状況はどうなっているか、などを管理・把握しておいた方が良いです。

そのため、どこまで対応するかは AWS を利用する状況によって違ってくるかと思いますが、自分の環境に合いそうな内容はぜひとも活用してください。

2. 実施する対応概要

本記事では以下の対応を行います。

項目利用サービス対応理由
IAM ユーザーの作成IAMルートユーザーは特権アクションを実行できるため、日々の運用では利用しない方が良いです。
そのルートユーザーの代わりに日常で利用する IAM ユーザーを作成します。
IAM Access Analyzer の設定IAMポリシーの設定誤りなどで、S3 などのリソースが外部と共有できる状態になっていないかチェックするために設定します。

1. IAM について

IAM とは「AWS Identity and Access Management」の略で、AWS を使う人のアカウント管理や権限設定を行うウェブサービスです。
誰が何を使えるかを細かく管理できます。

3. IAM ユーザーの作成

ルートユーザーは AWS アカウント閉鎖などの特権アクションを実行できるため、日々の運用では利用しない方が良いです。

代わりとして日々の運用を行うIAM ユーザー(管理ユーザー)を別で作成します。

おおまかな作業内容は以下の通りです。

【おおまかな作業内容】

  • 請求情報への IAM アクセス許可
  • IAM ユーザー(管理ユーザー)の作成
  • IAM ユーザーでのサインイン確認および MFA 設定

1. 請求情報への IAM アクセス許可

IAM ユーザーは、デフォルトでは請求とコスト管理のコンソール画面にアクセスできません。

どのサービスにいくら発生しているのかなどの情報について、日々の運用を行う IAM ユーザーでも確認できるようにするため請求情報へのアクセス許可を行います。

ルートユーザーで AWS マネジメントコンソールへサインイン後、右上のアカウント部分をクリックしアカウント①をクリックします。

アカウントクリック画像

アカウント画面を下へスクロールし、IAM ユーザーおよびロールによる請求情報へのアクセス項目の編集ボタン②を押します。

IAMユーザーおよびロールによる請求情報へのアクセス編集押下画像

IAM アクセスをアクティブ化③をチェックし更新ボタン④を押します。

IAMアクセスをアクティブ化チェックおよび更新画像

再度 IAM ユーザーおよびロールによる請求情報へのアクセス項目までスクロールし、有効化済みと表示されていることを確認します。

IAMユーザーおよびロールによる請求情報へのアクセス有効化済み確認画像

これで請求情報への IAM アクセス許可は完了です。

2. IAM ユーザー(管理ユーザー)の作成

IAM ユーザーの作成を行います。

今回はルートユーザーの代わりとなる管理ユーザーを作成するため、AWS のサービスとリソースにフルアクセスできる権限の強いポリシーを割り当てます。

まず初めに IAM ユーザーのパスワードポリシーの設定を行います。
AWS マネジメントコンソール左上の検索バー⑤に「iam」と入力し、出てきた IAM ⑥をクリックします。

IAM検索クリック画像

左側のツリーのアクセス管理 – アカウント設定⑦をクリックします。

アカウント設定クリック画像

編集ボタン⑧を押します。

パスワードポリシー編集ボタン押下画像

カスタム⑨を選択します。
パスワードの最小文字数を 14 文字、パスワードの強度をすべてチェック、その他の要件はユーザーにパスワードの変更を許可⑩にチェックをします。
その後、変更を保存ボタン⑪を押します。

パスワードポリシー編集および変更を保存ボタン押下画像

カスタムを設定ボタン⑫を押し、パスワードポリシーが変更されていることを確認します。

カスタムを設定ボタン押下画像

左側のツリーのアクセス管理 – ユーザーグループ⑬をクリックし、グループを作成ボタン⑭を押します。

ユーザーグループクリック画像
グループを作成ボタン押下画像

ユーザーグループ名⑭に任意の名前を入力します。
許可ポリシーの検索バー⑮に「AdministratorAccess」と入力し、出てきたポリシー名「AdministratorAccess」⑯のチェックを付けます。
ユーザーグループを作成ボタン⑰を押します。

AdministratorAccess は、AWS サービスとリソースへのフルアクセスを提供するポリシーとなります。

ユーザーグループ設定および作成押下画像

作成したユーザーグループ名が表示されていることを確認します。

ユーザーグループ確認画像

左側のツリーのアクセス管理 – ユーザー⑱をクリックし、ユーザーの作成ボタン⑲を押します。

ユーザークリック画像
ユーザーの作成ボタン押下画像

ユーザー名⑳に任意の名前を入力します。
AWS マネジメントコンソールへのユーザーアクセスを提供する㉑にチェックを付けます。
次へボタン㉒を押します。

ユーザー設定および次へ押下画像

先ほど作成したグループ名㉓にチェックを付け次へボタン㉔を押します。

ユーザーグループ選択および次へ押下画像

内容を確認しユーザーの作成ボタン㉕を押します。

ユーザーの確認および作成押下画像

パスワードを取得画面で、.csv ファイルをダウンロードボタン㉖を押してファイルを保存します。
保存した csv ファイルを開き、「ユーザー名」「パスワード」「URL」が記載されていることを確認します。

この csv ファイルの内容を利用してアクセスするため、必ずダウンロードして保存してください。

csvファイルをダウンロード押下画像

csv ファイルの保存と確認ができたら、ユーザーリストに戻るボタンを押します。
作成したユーザー名が表示されていることを確認します。

ユーザー確認画像

これで IAM ユーザーの作成は完了です。

3. IAM ユーザーでのサインイン確認および MFA 設定

作成した IAM ユーザーでのサインインの確認と MFA 設定を行います。

右上のアカウント部分をクリックしサインアウトボタン㉗を押します。

サインアウト押下画像

サインアウト後、IAM ユーザー作成時にダウンロードした csv ファイルを開きます。
csv に記載されている URL にアクセスし、IAM ユーザー名とパスワード㉘を入力してサインインボタン㉙を押します。

IAMユーザーサインイン画像

古いパスワードと新しいパスワード㉚を入力してパスワード変更の確認ボタン㉛を押します。

パスワードのリセットおよびパスワード変更の確認押下画像

サインインを続行ボタン㉜を押し、AWS マネジメントコンソールが表示されることを確認します。

サインインを続行押下画像

AWS マネジメントコンソールが表示されたら、ルートユーザーの時と同様に MFA を設定します。

MFA の設定手順は、前回の記事の「5. ルートユーザーの MFA 設定」を参考にしてください。

MFA の設定ができたら一度サインアウトし、再度サインインして MFA 認証されることを確認します。

問題無くサインインできれば、IAM ユーザーでのサインイン確認および MFA 設定は完了です。

4. IAM Access Analyzer の設定

ポリシーの設定誤りなどで、S3 などのリソースが外部と共有できる状態になっていないかチェックするために設定します。

IAM Access Analyzer は 3 つの検出結果のタイプが存在します。

  • 外部アクセスアナライザー
    AWS リソースに対するパブリックおよびクロスアカウントアクセスの検出結果を作成します。これは追加料金なしで提供されます。
  • 内部アクセスアナライザー
    AWS 組織内でビジネスクリティカルな AWS リソースへのアクセス権を持つ IAM ロールとユーザーを特定します。これは有料機能です。
  • 未使用アクセスアナライザー
    未使用アクセスを検査し、最小限の権限設定をガイドします。これは有料機能です。

※分析対象としてサポートされているリソースタイプはそれぞれの検出結果のタイプで異なります。

注記

リストされているサポート対象のリソースタイプは、外部および内部アクセスアナライザー用です。内部アクセスアナライザーは、外部アクセスアナライザーがサポートするすべてのリソースタイプをサポートしているわけではありません。未使用のアクセスアナライザーは、IAM ユーザーとロールのみをサポートします。

引用元:外部アクセスと内部アクセスのサポートされている IAM Access Analyzer リソースタイプ – AWS Identity and Access Management

また設定についてですが、IAM Access Analyzer の設定はリージョン単位で行っていきます。

AWS にはリージョンという概念が存在します。
リージョンは、データセンターが集まっている世界中の物理的な場所のことを指します。
(現在の日本だと、東京リージョンと大阪リージョンの 2 つが存在します)

本記事では追加料金なしで利用できる外部アクセスアナライザーを設定します。

リージョンについては、今後の構築作業を予定している「東京リージョン(Code:ap-northeast-1)」と「バージニア北部リージョン(Code:us-east-1)」の2 つのリージョンに対して設定します。

利用予定のリージョンがあれば読み替えてください。

1. IAM Access Analyzer の設定

IAM ユーザーで AWS マネジメントコンソールにサインインします。
AWS マネジメントコンソール左上の検索バーに「iam」と入力し、出てきた IAM をクリックします。

左側のツリーのアクセスレポート – Access Analyzer①をクリックします。

AccessAnalyzerクリック画像

右上のリージョン部分を確認します。
もし作業を行うリージョンでない場合は変更して作業を進めます。

作業するリージョンを間違えないようにしましょう。

※下記はバージニア北部リージョンで作業する場合の参考画像です。

バージニア北部リージョン参考画像

右側のアナライザーを作成ボタン②を押します。

アナライザーを作成押下画像

検出結果のタイプで Resource analysis – External access③を選択後、任意の名前④を入力しアナライザーを作成ボタン⑤を押します。

アナライザー設定およびアナライザーを作成押下画像

作成したアナライザーが表示されていることを確認します。

アナライザー確認画像

残りのリージョンでも同様の作業を行います。
左側のツリーのアクセスレポート – Access Analyzer をクリックします。

クリック後、右上のリージョン部分を変更します。

※下記は東京リージョンに変更する場合の参考画像です。

東京リージョン変更参考画像

リージョンが切り替わったことを確認後、先ほどと同様に右側のアナライザーを作成ボタンを押して作業を進めます。

設定対象としている各リージョンで作業ができたら IAM Access Analyzer の設定は完了です。

検出結果はしばらく経って出力されます。
本記事の環境だと約 2 日後に結果が出力されました。

今後は、意図せず外部と共有できる状態になっていないかチェックするためにも、設定した各リージョンの結果を定期的に確認しましょう。

※下記は検出結果の参考画像です。

アナライザー検出結果参考画像

5. まとめ

この記事では AWSアカウント作成後の初期設定 – IAM に関する部分を記載してきました。

ルートユーザーは特権アクションを実行できるため、代わりとなる IAM ユーザー(管理ユーザー)を作成して日々の運用はそちらを利用するようにしましょう。

今回は管理ユーザーを作成したため AWS サービスとリソースへのフルアクセス可能な権限を割り当てましたが、その他にも特定のリソースだけアクセスさせたり全体的に参照だけさせるような権限を設定することも可能です。

また自分の AWS 環境を把握するために IAM Access Analyzer も有用だと考えます。
内部や未使用アクセスアナライザーは料金が発生しますが、求められる要件とコストを見比べて設定することで自分の環境を把握する手助けになると思います。

IAM を利用するとことで AWS 環境にアクセスするユーザーやグループごとに最低限必要となる権限を割り当てたり、自分の環境を管理・把握することに役立ちますので活用していきましょう。

次回も引き続き AWS アカウントの初期設定について記載します。

IT 応援ブログはあなたの IT ライフを応援します!!

X. 参考

責任共有モデル – Amazon Web Services (AWS)
SEC01-BP02 Secure account root user and properties – AWS Well-Architected Framework
IAM とは – AWS Identity and Access Management
IAM Access Analyzer の外部アクセスアナライザーを作成する – AWS Identity and Access Management
AWS Regions – AWS Regions and Availability Zones