おっさん社内SEエンジニアの勉強ブログ

勉強記録のブログとなります。

SAA学習-IAM-IAMの概要

本日のテーマ:IAMの概要

主要サービスの公式資料

IAM: docs.aws.amazon.com

IAMとは

AWS Identity and Access Managementの略称で、
安全にAWSの操作を実施するための認証・許可の仕組みとなります。

具体的には、AWSの操作を実施するため、ユーザ管理を行う仕組みとなります。

IAMの構成要素

IAMの構成要素としては以下のものが挙げられます。

  • ユーザー
  • グループ
  • ポリシー
  • ロール

IAMポリシー

ユーザーなどへアクセス権限を付与するための設定ドキュメント(JSON形式の文章)になります。

JSONファイルの構成要素

JSONファイルの構成要素と設定は以下のようになります。

  • Effect:Allow→許可、Deny→拒否
  • Action:対象のAWSサービス 例:s3:Get
  • Resource:対象のAWSリソース ARNで記述
  • Condition:アクセス制限が有効となる条件 例:IPアドレスなど

IAMユーザー

AWS上の利用者はIAMユーザーという権限を付与されたエンティティ(要素)として設定されます。
各種アカウントに対する概要は以下のようになります。

要素 概要
ルートアカウント AWSアカウント作成時に作られるIDアカウント
・すべてのAWSサービスとリソースを使用可能
・日常的には使用しないことが推奨
管理者権限 ・管理者権限の許可が付与されたIAMユーザー
・IAMの操作権限まで
ルートアカウントしかできない権限は付与されない
パワーユーザー ・IAM以外のすべてのAWSサービスにフルアクセス権限を有するIAMユーザー
・IAMの操作権限なし

cf)自社所有のAWSアカウントに対し、外部ベンダーにIAMユーザーを払い出す際、活用することがあります。
以下は例となります。

  • 自社:ルートアカウント、管理者権限
  • 外部ベンダー:パワーユーザー

ルートアカウントでしかできない操作のリスト

以下の内容がルートアカウントでサインインしないと操作できない作業となります。

  • AWSルートアカウントのメールアドレス/パスワードの変更
  • IAMユーザーの課金情報へのアクセスに関するactivate(許可)/deactivate(拒否)の設定
  • 他のAWSアカウントへのRoute53のドメイン登録の以降
  • AWSサービス(サポート等)のキャンセル
  • AWSアカウントの停止
  • コンソリデイテッドビリングの設定(複数アカウント利用時の一括請求)
  • 脆弱性診断フォームの提出
  • 逆引きDNS申請

IAMグループ

IAMグループは、グループ権限をまとめて設定された単位となります。
また、一括で設定するアクセス権限の管理を行うことができ基本的には組織単位で設定します。

IAMロール

IAMロールは、AWSリソースに対し、アクセス権限をロールとして付与が可能です。

IAMの認証方式

IAMの認証方式は、AWSリソースを使用する手段によって異なります。
認証方式と使用する手段に関して以下のようなものがあります。

認証方式 使用する手段
アクセスキーID/シークレットアクセスキー ・EC2インスタンス接続などのREST/Query形式
AWS CLIAPI利用時
X.509 Certificate SOAP形式のAPI陸セスト用の認証方式
・あまり利用されるシーンがない
AWS マネジメントコンソールへログインパスワード AWSアカウントごとにパスワードを設定してログイン
・デフォルトは未設定
MFA(多要素認証) ・物理デバイスなどを利用。
・ルートアカウントなどは付与することを推奨

ユーザーのアクティビティ(利用)の記録

ユーザーのアクティビティ(利用)の記録を残す方法として、AWSのマネージドサービスを活用します。
AWSサービスを活用した記録は、以下のようなものが挙げられます。

AWSサービス 利用用途
IAMアクセスアナライザー 外部要素と共有されているS3バケットやIAMロールなどを分析し、セキュリティ上のリスクであるリソースとデータへの意図しないアクセスを特定
Access AdvisorのService Last Accessd Data IAMエンティティ(ユーザー、グループ、ロール)が最後にAWSサービスにアクセスした日付と時刻を表示する機能
Credential Report 利用日時などが記録されたIAM認証情報のレポートファイル
AWS Config IAMエンティティの変更履歴、構成変更を管理・確認する機能
ACS CloudTrail AWSインストラクチャ全体でアカウントアクティビティをログに記録と継続的に関しし保持することができる機能

IAM権限のベストプラクティス

IAM権限のベストプラクティスとして、以下の内容について網羅できいるかという観点が必要になります。

  • AWSアカウントのルートユーザのアクセスキーをロックして通常は未使用
  • 個々のIAMユーザーを作成して、IAMユーザーで管理
  • IAMユーザーへのアクセス許可を割りあえてにIAMグループを利用
  • IAMユーザー/グループには最小権限のみ設定
  • 新しいポリシーを作るではなく、AWS管理ポリシーを使用
  • インラインポリシーではなくカスタマー管理ポリシーを使用
  • アクセスレベルをしゆ押してIAMアクセス許可を確認
  • ユーザーのために強度の高いパスワードポリシーを設定
  • MFA(多要素認証)を有効化
  • EC2インスタンスで実行するアプリケーションにはIAMロールを使用
  • 三者に一時的に認証を付与する場合、IAMロールを使用してアクセス許可を移譲
  • アクセスキーを共有しない
  • 認証情報を定期的にローテーション
  • 不要な認証情報の削除する(IAMエンティティの棚卸を行う)
  • AWSアカウントのアクティビティを監視する

今回のテーマは以上です。