Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS研修 AWS IAM
Search
Recruit
PRO
August 18, 2021
Technology
2
7.9k
AWS研修 AWS IAM
2021年度リクルート エンジニアコース新人研修の講義資料です
Recruit
PRO
August 18, 2021
Tweet
Share
More Decks by Recruit
See All by Recruit
あなたの知らない Linuxカーネル脆弱性の世界
recruitengineers
PRO
3
170
dbtとBigQuery MLで実現する リクルートの営業支援基盤のモデル開発と保守運用
recruitengineers
PRO
3
170
『ホットペッパービューティー』のiOSアプリをUIKitからSwiftUIへ段階的に移行するためにやったこと
recruitengineers
PRO
4
1.6k
経営の意思決定を加速する 「事業KPIダッシュボード」構築の全貌
recruitengineers
PRO
4
280
Browser
recruitengineers
PRO
12
3.7k
JavaScript 研修
recruitengineers
PRO
8
2k
TypeScript入門
recruitengineers
PRO
37
14k
モダンフロントエンド 開発研修
recruitengineers
PRO
13
7.8k
Webアクセシビリティ入門
recruitengineers
PRO
4
2.1k
Other Decks in Technology
See All in Technology
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
110
オブザーバビリティと育てた ID管理・認証認可基盤の歩み / The Journey of an ID Management, Authentication, and Authorization Platform Nurtured with Observability
kaminashi
2
1.4k
RemoteFunctionを使ったコロケーション
mkazutaka
1
160
ラスベガスの歩き方 2025年版(re:Invent 事前勉強会)
junjikoide
0
630
Amazon Athena で JSON・Parquet・Iceberg のデータを検索し、性能を比較してみた
shigeruoda
1
250
어떤 개발자가 되고 싶은가?
arawn
1
240
設計に疎いエンジニアでも始めやすいアーキテクチャドキュメント
phaya72
4
2.5k
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
4
910
20251102 WordCamp Kansai 2025
chiilog
0
110
SREのキャリアから経営に近づく - Enterprise Risk Managementを基に -
shonansurvivors
1
490
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
7
1.5k
アノテーション作業書作成のGood Practice
cierpa0905
PRO
1
320
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Writing Fast Ruby
sferik
630
62k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
A designer walks into a library…
pauljervisheath
209
24k
Building Applications with DynamoDB
mza
96
6.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Keith and Marios Guide to Fast Websites
keithpitt
411
23k
What's in a price? How to price your products and services
michaelherold
246
12k
Music & Morning Musume
bryan
46
6.9k
Transcript
AWS IAM 株式会社リクルート クラウドアーキテクトグループ
AWS IAMとは 正式名称は、AWS Identity and Access Management • 主な役割 •
AWSリソースを操作するための認証・認可の仕組みを提供します 2
認証と認可 • 認証 • 誰なのか、本⼈なのかを確認する • 認可 • 認証された⼈が実⾏可能なアクションの範囲を定める 3
(リクルートの) 社員証 認証と認可の例 オフィスにおける社員証を使った⼊室管理を考える 認証 社員証を持っている = 本⼈ (実際には写真と照合したりもする) リクルートオフィスのドア 他社オフィスのドア ドアは開く ドアは開かない 認可
主たる役割を提供するための機能 • 権限管理を⽀援するための各種概念と仕組みの提供 • 多要素認証のための仕組みの提供 • パスワードだけでなく他の要素とも組み合わせて認証を⾏います • ⼀時的な認証トークンを使った権限の委任(後述) •
権限を指定した⼈などに委任することができます • 他のIDプロバイダとの連携 • 他のIDプロバイダ(AzureADなど)と連携することができます 4 Authenticatorアプリ YubiKey RSAのあれ
主たる役割を提供するための機能 • 権限管理を⽀援するための各種概念と仕組みの提供 • 多要素認証のための仕組みの提供 • パスワードだけでなく他の要素とも組み合わせて認証を⾏います • ⼀時的な認証トークンを使った権限の委任(後述) •
権限を指定した⼈などに委任することができます • 他のIDプロバイダとの連携 • 他のIDプロバイダ(AzureADなど)と連携することができます 5 Authenticatorアプリ YubiKey RSAのあれ
AWS IAMとは 認証・認可の仕組みを通じて ⼈やモノ(AWSリソースなど) が操作可能な範囲を 安全かつ容易に規定するためのサービス 6
主たる役割を提供するための機能 • 権限管理を⽀援するための各種概念と仕組みの提供 • 多要素認証のための仕組みの提供 • パスワードだけでなく他の要素とも組み合わせて認証を⾏います • ⼀時的な認証トークンを使った権限の委任(後述) •
権限を指定した⼈などに委任することができます • 他のIDプロバイダとの連携 • 他のIDプロバイダ(AzureADなど)と連携することができます 7 Authenticatorアプリ YubiKey RSAのあれ
IAMを構成する概念 8 IAMプリンシパル IAMポリシー IAMユーザー IAMロール 他 (AWSサービスやアプリ ケーション) 管理ポリシー
AWS管理ポリシー カスタム管理ポリシー インラインポリシー リソースや⼈に割り当てる単位 IAMプリンシパルに割り当てる 権限の集まり リソースポリシー
IAMを構成する概念 9 IAMプリンシパル IAMポリシー IAMユーザー IAMロール 他 (AWSサービスやアプリ ケーション) 管理ポリシー
AWS管理ポリシー カスタム管理ポリシー インラインポリシー リソースや⼈に割り当てる単位 IAMプリンシパルに割り当てる 権限の集まり リソースポリシー
IAMプリンシパル principal[名]: 活動などの主導者 10
IAMプリンシパル principal[名]: 活動などの主導者 • ⼈やAWSリソースに割り当てる要素です。 • 認証(=誰なのかの判別)に⽤います。 11
IAMプリンシパル principal[名]: 活動などの主導者 • ⼈やAWSリソースに割り当てる要素です。 • 認証(=誰なのかの判別)に⽤います。 • ユーザーが明⽰的に意識して作成するのは以下の2種類 1.
IAMユーザー 2. IAMロール 12
IAMユーザー IAMユーザーとあるとおり、利⽤者に割り当てるものです。 (ここでは利⽤者とは⼈、またはAWSリソースではない計算リソースなどを指します) • 特徴 • パスワードなどを使ったAWSマネジメントコンソールへのアクセスを提供する • (永続的な)アクセスキーを使った認証の提供 •
アクセスキーを使ったCLI操作などが可能になる 13 ズアッ!! 時間っぽい名前の⼈⽤ のIAMユーザー 貧乏旗本の 三男坊です T⽥S之助⽤の IAMユーザー F原R⾺⽤の IAMユーザー M地K弥⽤の IAMユーザー
IAMロール AWSのサービスや特定のIAMユーザー、他のIAMロールに権限を委任することで AWSリソースの操作を可能にするための仕組みです 役割の引受(assume role)時に、⼀時的なセキュリティ認証情報を払い出します 14 IAM User 他のIAM Role
任意のAWSサービス IAM Role assume role (役割の引受) AWS Resource AWS Resource AWS Resource AWS Resource AWS Resource AWS Resource 操作 AWSコンソールの画⾯で信頼関係について記載する
⼀時的なセキュリティ認証情報の払い出し Amazon STS(Security Token Service)が⼀時的なセキュリティ認証情報を払い出 します 15 Amazon STS 1.
指定したロールの引受リクエスト (assume role) 2. ⼀時的なセキュリティ認証情報 AWS Resource AWS Resource AWS Resource AWS Resource AWS Resource AWS Resource ここで払い出した ⼀時的なセキュリティ認証情報は 1で指定したロールに紐づく 3. 2で得たセキュリティ認証情報でアクセス
IAMロールで考えなきゃいけないこと • このロールで何をできるようにしたいか︖できないようにしたいか︖ • IAMポリシー(後述)できてい • このロールを誰が使えるようにしたいか • 誰からのAssume Roleを受け付ける(=信頼関係を確⽴する)か︖
16
IAMロールの信頼関係 どのIAMプリンシパルからであればAssumeRoleを認めるかということを記述します。 信頼関係もIAMポリシードキュメントのフォーマットで記述します。 17 CodeBuildからの AssumeRoleを認めています 複数のロールからの AssumeRoleを認めています MantoManagedStandardAdmin manto-dev-project-alb-role
IAMロールの信頼関係をもう少し良く⾒てみる(クロスアカウントアクセスの理解) 18 AWS内のPrincipalに sts:AssumeRoleを許可する 特に条件はなし arn:aws:sts::930582747351:assumed-role/AWSReservedSSO_bastion-user_843e858bb0e97221/ryoma_fujiwara がこのMantoManagedStandardAdminRoleの権限を引き受けることができる。 = Principalに他のAWSアカウントのARNを含めて上げればクロスアカウントアクセスを実現できる。
IAMロールによるクロスアカウントアクセス 19 AWS Account A AWS Account B AssumeRole Account
Bの IAMロール Account Aの IAMユーザー・ロールその他 AWS Resource AWS Resource AWS Resource AWS Resource AWS Resource AWS Resource 様々な操作 with ⼀時的なセキュリティ認証情報 IAMロールのPrincipalに他アカウントのIAMロールなどの情報を設定してあげれば、 AssumeRoleを介してクロスアカウントのIAMアクセスを実現することができる。
(補⾜)ARN(Amazon Resource Name)とは AWSのリソースをグローバルで⼀意に識別するための識別⼦ 20 https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-arns-and-namespaces.html arn: partition : service
: region :account-id : resource-id arn: partition : service : region :account-id : resource-type / resource-id arn: partition : service : region :account-id : resource-type : resource-id リソースの配置されているリージョンのグループ aws: 通常のAWSリージョン aws-cn: 中国リージョン aws-us-gov: GovCloud(US)リージョン AWSのサービス名(s3など) AWSのリージョン名(ap-northeast-1など) AWSアカウントのID(12桁の数字) リソースの種類 リソースのID(サービス内やリソースタ イプ内での⼀意な識別⼦, 例: EC2のイ ンスタンスID、i-12345678など
IAMを構成する概念 21 IAMプリンシパル IAMポリシー IAMユーザー IAMロール 他 (AWSサービスやアプリ ケーション) 管理ポリシー
AWS管理ポリシー カスタム管理ポリシー インラインポリシー リソースや⼈に割り当てる単位 IAMプリンシパルに割り当てる 権限の集まり リソースポリシー
IAMポリシー IAMユーザーやIAMロールに紐付けて個別の操作の実施可否を判断するための仕組 み 22 IAMポリシー ポリシードキュメント ステートメント ステートメント ステートメント ステートメント
ステートメント IAMポリシーはポリシードキュメントから構成される ポリシードキュメントは複数のステートメントの集まり
IAMポリシー ポリシーのイメージ 23 1つ1つがポリシー ポリシードキュメント ステートメント
IAMポリシーの種類 • 管理ポリシー • 独⽴したリソースとして管理されているポリシー • 複数のIAMユーザやIAMロールに紐付けが可能 • AWS IAMのポリシーページで表⽰されるのはこれ
• AWS管理ポリシーとカスタム管理ポリシーが存在 • インラインポリシー • 単⼀のIAMユーザやIAMロールに埋め込む形で定義されているポリシー • IAMロールやユーザの画⾯から作成する • リソースポリシー • IAMユーザやロールではなく、S3バケットなどの IAMプリンシパル以外のAWSリソースに紐づくポリシー 24 IAMプリンシパル 管理ポリシー インラインポリシー IAMプリンシパル以外のAWSリソース リソースポリシー
ポリシーの書き⽅ https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_polici es_elements.html と https://docs.aws.amazon.com/ja_jp/service- authorization/latest/reference/reference.html を⾒つつ、 既存のAWS管理ポリシーを参考にしつつ作る。 25