1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSのアイデンティティサービスについて簡単にまとめてみた

Last updated at Posted at 2024-11-10

背景

  • AWSのアカウントサービス(IAMユーザー、IAMポリシー、IAMグループ、IAMロールあたり)の棲み分けが怪しかったためまとめてみる

AWSアカウントの全体像

  • AWSには「AWSアカウント」と「IAMユーザー」と呼ばれる2種類のアカウントがある
  • AWSアカウントは全てのサービスを利用可能でルートユーザーと呼ばれる
  • IAMユーザーはAWSを利用する各利用者向けに作成するアカウントで、AWSアカウントによって作成される
AWSアカウント1/
├── IAMユーザー1
├── IAMユーザー2
└── IAMユーザー3
AWSアカウント2/
├── IAMユーザー3
└── IAMユーザー4

サマリ

  • それぞれのサービスの特徴をざっくりと記載すると下記の通り
サービス 概要
AWSアカウント ルートユーザー
全てのサービスを利用可能(※)
各AWS利用者向けにIAMを作成する
IAMポリシー 各AWSサービスの利用可否をポリシーとして設定し、IAMユーザーやIAMグループ、IAMロールへ付与する
IAMユーザー AWSを利用するために各利用者へ割り当てられる認証情報
IAMグループ 同じ権限を持ったIAMユーザの集まり
AWSへのアクセス認証は行わない
IAMロール 一時的にAWSリソースへのアクセス権限を付与する
AWS Organizations 複数のAWSアカウントを階層的にグループ化し一元管理

※AWS OrganizationsのSCPによって制限された機能は利用不可

AWSアカウント

  • ルートユーザーと呼ばれる
  • AWSの全サービスに対して操作可能な権限を持つため扱いには注意が必要
  • AWSを利用して何かシステムを構築する場合は基本的にルートユーザーではなくIAMユーザーを使用する
  • MFAの設定が推奨される

IAM

  • 主要機能として下記の4つがあげられる
    • IAMポリシー
    • IAMユーザー
    • IAMグループ
    • IAMロール

IAMポリシー

  • Action(どのサービスの)、Resource(どういう機能や範囲を)、Effect(許可/拒否する)という3つのルールを設定することでポリシーを作成
  • 作成したポリシーをIAMユーザーやIAMグループ、IAMロールに付与することで各IAMユーザーの制御を実現

インラインポリシー

  • 対象ごとに作成、付与を行うポリシー

例)
ユーザーAにはポリシーAを作成し付与
ユーザーBにはポリシーAとポリシーBを作成し付与
ユーザーCにはポリシーBとポリシーCを作成し付与

監視ポリシー

  • 1つのポリシーを複数のユーザーやグループに対して適用
  • 下記の2種類がある
    • AWS管理ポリシー:AWSが用意しているポリシー
    • カスタマー管理ポリシー:ユーザー自身で管理するポリシー

例)
ポリシーAを作成しユーザーAとユーザーBに適用
ポリシーBを作成しユーザーBとユーザーCに適用
ポリシーCを作成しユーザーCに適用

IAMユーザー

  • AWSを利用するために各利用者へ1つずつ与えられる認証情報(ID)
  • 人だけでなくAPIを呼び出したりCLIを実行したりする主体に対しても与えることが可能
  • Webコンソールへのログイン時はユーザーIDとパスワードに加え、MFAの組み合わせが推奨される
  • CLIやAPIでAWSリソースへアクセスする場合はアクセスキーとシークレットキーを使用

IAMグループ

  • 同じ権限を持ったユーザの集まり
  • AWSへのアクセス認証情報は保持しないため、認証はあくまで各ユーザーにて行う必要がある
  • 認証されたユーザがどのような権限(サービスの利用可否など)を持っているかを管理

例)
部署A、部署B、部署Cではそれぞれ利用するAWSサービスが異なる場合
(各部署のユーザーは1人1つのIAMユーザーを所持)
IAMグループAには、部署AのユーザーのIAMユーザーを割り当てる
IAMグループB、Cも同様に部署B、Cのユーザーを割り当てる
これにより各IAMグループにてサービス利用可否を設定しておくことで、各IAMユーザー単位でサービス利用可否を設定する必要がなくなり運用負荷の軽減に繋がる

IAMロール

  • 一時的にAWSリソースへのアクセス権限を付与する場合に利用
  • 例えば下記のような場合に利用
    • AWSリソースへの権限付与:EC2インスタンス上で稼働するアプリケーションに一時的にAWSリソースへアクセスする権限を付与したい
    • クロスアカウントアクセス:複数のAWSアカウント間のリソースを1つのIAMユーザーで操作したい
    • IDフェデレーション:社内のADに登録されているアカウントを使用してAWSリソースへアクセスしたい
    • Web IDフェデレーション:FacebookやGoogleのアカウントを使用してAWSリソースへアクセスしたい

AWS Organizations

  • 複数のAWSアカウントを階層的にグループ化しアカウント群の管理を一元的に実施
  • グループにまとめることで請求書を1枚にまとめたり、それぞれのアカウントで利用可能なAWSサービスに制限をかけることが可能
  • 組織内には請求アカウントとなる管理アカウントが存在し、その配下に組織単位(OU)と呼ばれる論理グループを作成することが可能
Organizationルート(管理アカウント)/
├── OU/
│   ├── OU/
│   │   ├── アカウントA
│   │   └── アカウントB
│   └── OU/
│       └── アカウントC
└── OU/
    └── アカウントD

サービスコントロールポリシー(SCP)

  • 組織のアカウントに対して特定の権限や操作の許可/拒否を設定可能
  • IAMポリシーではIAMユーザーやIAMロールを対象とするのに対し、SCPではAWSアカウントを対象とするためより強い権限の設定が可能
    • SCPで制限された機能を、IAMユーザーやIAMポリシーで許可することは不可
      (許可しても使用不可)
    • ルートユーザーであっても制限される
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?