📝

【やってみた】AWSのIAMユーザー作成のメリットと設定方法

2023/05/07に公開

AWS Identity and Access Management (IAM)

IAMユーザー作成のメリット

IAM(Identity and Access Management)ユーザーの作成には、AWSアカウントのセキュリティと効率性を向上させるいくつかの利点がある。

  • 最小権限原則: ルートユーザーアカウントではなくIAMユーザーを使うことで、最小権限原則に従える。これにより、各IAMユーザーが必要な権限だけを持ち、不必要なアクセス権を持たないことが保証される。

  • アクセス制御: IAMユーザーは、個別のアクセス権限を持つため、特定のAWSリソースへのアクセスを適切に制御できる。これにより、組織内でAWSリソースの利用が適切に管理され、セキュリティが向上する。

  • 監査可能性: IAMユーザーを使うと、AWS CloudTrailを使ってユーザーごとのアクションを追跡できる。これにより、問題が起きた場合の調査が容易になり、組織内のセキュリティポリシーが守られているか確認できる。

  • 認証オプション: IAMユーザーは、アクセスキー、シークレットキー、およびパスワードを使ってAWSへのアクセスが認証される。さらに、多要素認証(MFA)を有効にして、セキュリティを強化できる。

  • 貫性のあるアクセス管理: IAMユーザーはAWSアカウント全体で一元管理されるため、組織全体でアクセス制御ポリシーを適用し、管理することが容易になる。

  • コスト効果: IAMユーザーの作成と管理は無料だ。ただし、IAMユーザーによって実行されるAWSリソースの利用に関連する費用はかかる。

IAMユーザーを作成することで、AWSアカウントのセキュリティを向上させ、組織内で適切なアクセス制御を確保できる。また、監査可能性が向上し、一貫性のあるアクセス管理が可能になる。

ルートユーザーとIAMの違い

AWS Identity and Access Management (IAM) は、AWSリソースへのアクセスをセキュアに制御するサービス。IAM を使うことで、AWSリソースを使用するユーザーやアプリケーションに対して適切なアクセス権限を付与することができる。ルートユーザーとIAMユーザーにはいくつかの違いがある。

ルートユーザー:

  • メールアドレス + パスワードでログイン
  • AWSアカウントを作成したときに、自動的に作成されるユーザー。
  • ルートユーザーは、アカウントの所有者として、AWSリソースに対する完全なアクセス権限を持っている。
  • ルートユーザーには、アカウント設定や課金情報に関連するタスクを実行する能力がある。
  • セキュリティ上の理由から、ルートユーザーを日常的な作業に使用することは推奨されない。代わりに、特定の権限を持つIAMユーザーを作成し、使用することが推奨される。

IAMユーザー:

  • アカウントID + IAMユーザー名 + パスワードでログイン
  • AWSアカウント内で作成する個々のユーザーで、特定の権限を持つ。
  • IAMユーザーは、アカウント管理者が作成し、権限を付与・管理する。
  • IAMユーザーにはIAMポリシーを割り当てる事ができる。
  • IAMユーザーは、ルートユーザーが付与した権限の範囲内でのみAWSリソースにアクセスできる。
  • システム開発を行う際は利用者ごとにIAMユーザーを作成し,その方に必要な権限を割りふる。
  • IAMユーザーは、個々の開発者やアプリケーションに対して適切なアクセス権限を付与するために使用される。これにより、必要な範囲内でのみリソースにアクセスできるようになり、セキュリティが向上する。

ルートユーザーはAWSアカウントの最高権限を持つユーザーで、主にアカウント設定や課金に関するタスクに使用される。IAMユーザーは、AWSアカウント内で個別に作成され、適切なアクセス権限が付与されるユーザーで、日常的な作業や開発タスクに使用される。

※ IAMポリシー
例えば、インフラ担当者には、管理者用のポリシーを割り当てて、アプリ開発者には、参照用のポリシーを割り当てるようにできる。

  • インフラ担当者(Administratorポリシー)
    インスタンスの表示したり、新しくインスタンスを建てられる。
    同様にS3バケットも表示したり、新しくバケットを作成する事ができる。
 {
        "Effect": "Allow",
        "Action": "*",
        "Resource": "*"
      }
  • アプリ担当者(EC2ReadOnlyポリシー)
    EC2インスタンスを表示できるが、インスタンスは建てられない。
    バケットを表示したり、新しくバケットを作成する事ができない。
    EC2以外のサービスは使用できない。
 {
        "Effect": "Allow",
        "Action": "ec2:Describe*",
        "Resource": "*"
      }

IAMユーザー追加

  • 左カラムのUsersをクリック

  • Add usersをクリック(日本語なら、ユーザーを追加)

  • IAMの名前をつける。

  • Provide user access to the AWS Management Console - optional(AWS マネジメント コンソールへのユーザー アクセスを提供する)にチェック

  • パスワードを設定する

  • Next

  • Attach policies directly(既存のポリシーにアタッチ)

  • AdministratorAccess(強い権限)

  • Next

※S3の参照だけにしたい場合はReadOnlyにチェックする。

  • Create user(ユーザーの作成)

  • successfullyと出ればOK

  • Email sign-in instructionsで他の人にメールでお知らせする事もできる。

参考

ハンズオン資料 | AWS クラウドサービス活用資料集

AWS Hands-on for Beginners ハンズオンはじめの一歩: AWS アカウントの作り方 & IAM 基本のキ | AWS Webinar

IAMのポリシー書き方 json編 - Qiita

IAM Identity Centerを使って複数アカウント管理する。(その1:IAM Identity Centerでのログイン) - Qiita

今後、試したい事(更新予定)

  • Specify a user in Identity Center - Recommended(Identity Center でユーザーを指定する - 推奨)にチェック
    ※AWS IAM Identity Centerは複数のAWSアカウントへのシングルサインインを実現しつつ、一時的なアクセスキーの払い出しを容易に実現できる仕組み

  • Enable(有効)をクリック

  • Create AWS organization

Discussion