AWSのユーザーには下記の2種類があります。
- ルートユーザー
- IAMユーザー(アイアムユーザー、作業用ユーザー)
ルートユーザー
特徴
全てのAWSサービスの全てに完全なアクセス権を持ちます。
用途
- 基本的には使用しません。
- アカウントの設定変更
- 解約
注意点
ルートユーザーにIPアドレス制限をする機能はないです。2要素認証(MFA)の設定をすることを強く推奨されています。
発行のデザインパターン
1人では作業できないようにする。
ルートユーザーはパスワードの他にMFAの2段階認証にするのが良いと言われていますが、パスワード入力を作業者がやり上長がMFA実行をするというように2段階認証にするようにします。
上長はパスワードを知らないですし、作業者はMFA認証ができないのでこの二人が揃わないとrootアカウントを使用することができるようにします。そうすることで内部犯行の行使を防止することができます。
IAMユーザー(アイアムユーザー、作業用ユーザー)
IAMユーザーの管理はセキュリティの要になります。
特徴
- 認証やアクセス権を個別に設定できます。
- 作業者ごとに個別に権限を設定できます。
- 一般的な作業はこのユーザーで行います。
- 誰がどんな作業をしたか作業ログが記録されるようになる。
用途
- Webコンソールや、APIを通じてのAWS操作に使用します。
- 各ユーザーに対して操作を許可する(しない)サービスを定義します。
例
- 開発者ユーザーはサーバー構築権限を与えるが、ディレクターユーザーにはサーバー閲覧権限のみ与える等。
- ネットワーク管理者にはネットワーク権限(セキュリティグループ、VPC、Route53等)のみ持たせる。
認証方法
IAMユーザーの認証方法には2種類あります。なお、認証をより安全にするためにMFA(多要素認証)をオプションで利用することが可能です。
- ID・パスワードを使用した認証
- アクセスキーID・シークレットキーを使用した認証
ID・パスワードを使用した認証
AWSマネジメントコンソールへのログインに使用します。
アクセスキーID・シークレットキーを使用した認証
プログラムやコマンドライン等からのAPI操作に使用します。
IAMアカウント発行のデザインパターン
本番環境のアカウント権限を「リリース後」と「リリース前」とで分ける。
アカウントにはdev/stg/prodctionとあると思いますが、リリース前は作業しやすいように全アカウントの権限を多く付与しますが、リリース後はproductionアカウントのみ強めてセキュリティを担保します。
「重要情報を見れるIAM」と「重要情報を見れないIAM」に分ける。
CloudWatchも2つ作り、「重要情報をマスクしたログ」と「重要情報をマスクしてないログ」に分ける。IAMもそれぞれにアクセス権限をつけて適したアクセスが行われるようにする。
単なる作業者であれば「重要情報を見れないIAMアカウント」を使ってログインし、顧客情報を使用しての調査が必要なあ場合などは「重要情報を見れるIAM」でアクセスします。もちろん、重要情報を見れるIAMの場合は例えば、セキュリティルームの中だけしかアクセスできないなどの対策を練る必要があります。
MFA認証(認証オプション)の種類
- ハードウェアMFA
- 仮想MFA
IAMユーザーの設定
マイアカウント→IAM ユーザー/ロールによる請求情報へのアクセス
IAMユーザーが請求情報を確認できるか編集できます。
サービス→IAM
IAMユーザーを作成できます。
ポリシー
ポリシーには種類があります。
- 管理ポリシー
- インラインポリシー
インラインポリシー
管理ポリシーができる前の古い機能です。複数のグループやユーザー間で使用することが可能です。同じ設定をグループごとに何度も記述する必要があるので負荷が高くなります。極力使わないようにしましょう。
管理ポリシー
特定のグループやユーザーでのみ利用できる新しい機能です。なお、管理ポリシーにも2種類あります。2種類を組み合わせて権限を付与することが重要です。
AWS管理ポリシー
AWSではデフォルトで選択できるポリシーがいくつか存在します。ユーザーによって適切な権限を設定するようにしましょう。JSONで記述します。AWSが提供するビジュアルエディタにより選択式で作成することも可能です。
ポリシー名 | 説明 |
---|---|
AdministratorAccess | 一番強い権限です。 |
DeveloperPolicy | EC2やRDSの全操作ができます。 |
DirectorPolicy | EC2やRDSの読み取りができます。 |
AmazonS3FullAccess | S3の全操作ができます。 |
カスタマー管理ポリシー
各ユーザーが独自に作成したポリシー、IAMユーザーやグループ、ロールを付与します。
JSONの記述
Version
バージョンが二つあります。
- 2008-10-17
- 2012-10-17
記述しない場合は「2008-10-17」が適用されます。なので、必ず明示的に「2012-10-17」と最新バージョンを指定するようにしましょう。
Statement
ポリシーの主要エレメントで必須になります。
Action
どのサービスの
Resource
どういう機能や範囲の
Effect
許可(Allow)や拒否(Deny)
Condition
IPアドレス制限をかける等の詳細設定をすることが可能です。IPアドレスを指定する場合はグローバルIPを指定するようにしましょう。
この記事へのコメントはありません。