参照専用の権限を持つIAMユーザの作成

渡辺です。

IAMユーザに不必要な管理者権限を付けていませんか? リソースの確認依頼などを行う時、不用意に強い権限を持ったIAMユーザを発行すると、それ自体がセキュリティリスクとなります。 可能であれば、 必要最小限の権限を与えるべき でしょう。 特に、リソースの削除やIAM関連の作成権限は、事故が起きたときの被害が計り知れません。

今回は、必要最小限の権限を持ったIAMユーザ作成のコツを解説します。

IAMユーザの作成

はじめにIAMユーザを作成します。

マネジメントコンソールを開き、サービスメニューからIAMを開きます。

ダッシュボードから「ユーザ」メニューを開き、「ユーザを追加」をクリックします。

ユーザ名(readonly_user)を入力し、アクセスの種類で「AWSマネジメントコンソールへのアクセス」を選択します。

アクセス権限では「既存のポリシーを直接アタッチ」を選択し、ReadOnlyAccessにチェックを入れてください。

フィルターで「ReadOnly」などと入力して絞り込むと良いでしょう。

確認ができたならば「ユーザの作成」をクリックします。

最後にログイン用のURLと生成された(指定した)パスワードを確認できます。 担当者にこれらの情報を送ってください。

ReadOnlyAccessで権限が足りない場合

管理ポリシーであるReadOnlyAccessは、ほとんどのリソースを参照できます。 しかし、一部のリソースを操作する場合、ReadOnlyAccessでは権限不足になることがあります。 例えば、S3からファイルを取得する場合や、CloudWatch Logsのログを閲覧するようなケースです。 リソースのダウンロードを伴う操作は「書き込み」扱いとされている場合があるからです。

そのような場合は、ユーザの権限にインラインポリシーを追加します。 インラインポリシーではサービスの操作単位で、細かく権限を設定できます。

ユーザメニューから対象のユーザを選択し、権限タブから「インラインポリシーの追加」をクリックします。

インラインポリシーは、JSON形式で設定しますが、ビジュアルエディタを使えば簡単に設定できます。

はじめに追加する権限のサービスを選択します。

ここでは「connect」でフィルターをかけ、Amazon Connectを選択しました。

次に、許可するアクションを選択します。 リスト・読込・書込にわけてアクションが分類されているので、必要なアクションを選びましょう。

権限が足りない場合は、後からでも追加可能です。

次に、許可対象のインスタンスを選択します。 ここで、特定のインスタンスのみに権限を与えることができます。 アクションは絞ってもインスタンスは絞らないならば、「すべて」を選択すればOKです。

最後にポリシーの名前を付けましょう。

これでインラインポリシーが作成されました。 作成されたポリシードキュメント(JSON)を確認してください。 慣れてきたならば、このJSONを直接編集しても良いでしょう。

まとめ

参照用の権限を持ったIAMユーザを作成する場合、はじめにReadOnlyAccessを試してください。 ReadOnlyAccessで権限が不足している場合、 一部のサービスに限定して参照権限を与えたい場合などはインラインポリシーが便利です。 くれぐれもAdministratorを与えないようにしましょう。

なお、相手もAWSアカウントを持っているならば、権限を委譲するIAMロールを作成しても良いでしょう。 権限の与え方は同様です。