AWSのIAM(Identity and Access Management)についてまとめています。
AWSのIAMは、AWSサービスとリソースへのアクセス管理
AWS Identity and Access Management (IAM) は、AWS のサービスやリソースへのアクセス管理機能です。。IAMを使って、AWS のユーザーとグループの作成が可能。アクセス権を設定して、AWS リソースへのアクセス許可や拒否が可能です。
関連)AWS IAM(ユーザーアクセスと暗号化キーの管理)| AWS
IAMを利用するのに追加料金は不要です。IAMは、AWS アカウントに無料で提供されている機能なんですね。IAMを使うには、AWSマネジメントコンソールを開き、全てのサービス→セキュリティ、ID、及びコンプライアンス→IAMから使用開始します。
IAMダッシュボードから、アクセス管理とアクセスレポート機能を実行できます。
【関連記事】
▶AWS各種サービスのユーザー管理を簡単に!「AWS IAM」
AWS IAMのアクセス管理機能
AWS IAMダッシュボードから、ユーザやグループの追加、アクセス権限を既存のユーザからコピー、アクセスのポリシーをユーザに適用(アタッチ)ができます。大量のポリシーがあらかじめ用意されています。
IAMでアクセス権限を設定すると、ユーザーの AWSのサービス APIへのアクセスや、AWSの指定リソースへのアクセスをコントロールできます。アクセス権限には、利用できる日時の指定や、アクセス元IPアドレスの指定、SSL を使用しているかどうか、多要素認証デバイスで認証済みかなどの条件追加も可能です。
権限の高いユーザに対しては、他要素認証(Multi-Factor Authentication=MFA)の設定が可能です。追加コストは不要で、ユーザー名とパスワードによる認証情報を強化。セキュリティ機能である AWS MFA を使用して、AWS 環境を保護します。具体的には、ユーザーが有効な MFA コードを入力することで、ハードウェア MFA トークンまたは MFA 対応のモバイルデバイスを所有している証明になります。ワンタイムパスワードのようなものです。
AWS IAMでアクセスを分析する
IAMのもうひとつの機能として、アクセスを分析するアクセスレポート機能があります。
アナライザーを設定することでアクセスレポート機能が開始します。IAMのアクセス分析は、AWS環境全体を対象とすることができ、セキュリティチームや管理者はポリシーが正しく適用されて、許可したアクセスのみを提供していることを検証できるんですね。
ポリシーを改良して、使用中のサービスのみにアクセスすることも可能。これにより不要な権限を付与することなく、必要最小限の権限での運用が可能です。
IAM のアクセス権管理はをActive Directoryなどと統合できます。すでに社内ネットワーク上で従業員にディレクトリサービスでIDが付与されている場合、IDを使って従業員やアプリケーションにアクセス権限を付与できるんですね。なお、統合にはSAML 2.0 をサポートする ID 管理ソリューションであることが条件になります。Amazon のフェデレーションサンプル (AWS Console SSO や API フェデレーション) も用意されています。
IAMユーザのアクセスキーの管理
AWSのCLIやAPIを使用する場合、AWSのアクセスキーが必要になります。永続的なアクセスキーを発行する以外に、期限付きの一時的なアクセスキー発行をおこなって、よりセキュリティを高めることができるんですね。
関連)IAM ユーザーのアクセスキーの管理 – AWS Identity and Access Management
なお、アクセスキーを発行するためには以下のCreateOwnAccessKeysという権限が必要になります。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateOwnAccessKeys", "Effect": "Allow", "Action": [ "iam:CreateAccessKey", "iam:GetUser", "iam:ListAccessKeys" ], "Resource": "arn:aws:iam::*:user/${aws:username}" } ] }
AWS APIを使ってアクセスキーの管理が可能です。IAMユーザのアクセスキーを管理するには、以下のオペレーションを呼び出すことになります。
- アクセスキーを作成するには: aws iam create-access-key
- アクセスキーを無効にする、または再度有効にするには: aws iam update-access-key
- ユーザーアクセスキーを一覧表示するには: aws iam list-access-keys
- アクセスキーの最終使用日時を確認するには: aws iam get-access-key-last-used
- アクセスキーを削除するには: aws iam delete-access-key
AWSのオペレーションは、アクセスキーを登録したAWS CLIから操作が可能です。
【関連記事】
▶AWS CLIのインストール方法 AWSアクセスキーの登録と疎通確認
IAMのクロスアカウントアクセス(アクセスの委任)
IAMのロールを使って、所有する異なるAWSアカウントにあるリソースへのアクセスを委任することが可能です。これにより、アカウントごとにIAMユーザを作成する必要がなくなり、アカウントからいったんログアウトして再度サインインするような「アカウントの切り替え」の手間を省けます。
関連)IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任 – AWS Identity and Access Management
ロールを作成するには、以下のようなポリシー(JSON形式)を作成して、ロールにアタッチします。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::productionapp" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::productionapp/*" } ] }
AWS IAMのまとめ
- AWSのIAMは、AWSへのアクセス管理と分析が可能
- IAMは、追加料金無しで、無料で利用できる
- IAMでは、一時的なアクセスキーの発行やロールによるアクセスの委任が設定可能