IAMとは
AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に管理するためのウェブサービスです。IAM を使用して、リソースを使用するために認証 (サインイン) され、許可された (アクセス許可を持つ) ユーザーを制御します。
IAM とは - AWS Identity and Access Management
ざっくり言うと、同一のAWSリソースを共有するユーザーのようなもの。
AWS作成時のルートユーザーは最も権限が強く何でもできるため、ある程度権限を制限したユーザーとして作成する。
今回は「S3への閲覧権限のみ持ったIAM」を作成する。
IAMの作成
ユーザーを作成します。
コンソールからしかアクセスしないユーザーなので、「AWS マネジメントコンソールへのアクセス」のみにする。
アクセス許可の種類はいろいろあるが、今回はグループなどを指定せずに単純にポリシー(権限)を1つ1つ追加する。
最初から登録されているポリシー・作成したカスタムポリシーから選択できる。
タグは特に何も入れなくていい。
確認画面で権限などを確認して、よさそうなら作成する。
作成後に、自動生成されたパスワードを取得できるので、これを実際に使うユーザーに送信する。
CSVをダウンロードすると、作成したIAMの認証情報などログインに必要な情報が入ったデータを取得できるので、それを渡すのも可。
User name,Password,Access key ID,Secret access key,Console login link
new_user_name,*******,,,https://********.signin.aws.amazon.com/console
CSVをダウンロードすると、作成したIAMの認証情報などログインに必要な情報が入ったデータを取得できる。
カスタムポリシーの作成
しかし、AmazonS3ReadOnlyAccess
, IAMUserChangePassword
だけでは、このIAMを付与されたユーザーはMFA(多要素認証)を設定できない。
セキュリティの面でもMFAの設定はしてほしいので、MFAを設定できる権限(ポリシー)を作成することにする。
参考:IAM: IAM ユーザーに MFA デバイスの自己管理を許可する - AWS Identity and Access Management
|
|
ちなみに、"Deny"
の"NotAction"
にiam:ChangePassword
を設定する必要がある。
IAM作成時に「ユーザーは次回のサインインで新しいパスワードを作成する必要があります」を選択すると、ログイン後にパスワード変更が求められるのだが、これを設定していない場合「パスワードを変更するためにはMFA設定が必要」→「MFA設定の画面に行くためにはパスワード再設定が必要」と無限ループになってしまう。
参考:MFA 強制ポリシーを適用した IAM ユーザーで初回ログイン時のパスワード変更(リセット)ができない時の対処法 | DevelopersIO
タグは特に不要。
名前は何でもいいが、検索で引っかかりやすいようにわかりやすい名称にした方がいい。
今回は、他のポリシー名も参考にIAMSelfManageMFADevice
にした。
カスタムポリシーをIAMにアタッチ
ユーザー画面の「アクセス権限の追加」から、先ほど追加したカスタムポリシーを追加する。