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
Javaで作る RAGを活用した Q&Aアプリケーション
recruitengineers
PRO
1
140
問題解決に役立つ数理工学
recruitengineers
PRO
12
2.8k
Curiosity & Persistence
recruitengineers
PRO
2
190
結果的にこうなった。から見える メカニズムのようなもの。
recruitengineers
PRO
1
410
成長実感と伸び悩みからふりかえる キャリアグラフ
recruitengineers
PRO
1
190
リクルートの オンプレ環境の未来を語る
recruitengineers
PRO
3
350
LLMのプロダクト装着と独自モデル開発
recruitengineers
PRO
1
360
新規検索基盤でマッチング精度向上に挑む! ~『ホットペッパーグルメ』の開発事例 ビジネス編
recruitengineers
PRO
3
200
新規検索基盤でマッチング精度向上に挑む! ~『ホットペッパーグルメ』の開発事例 技術編
recruitengineers
PRO
2
260
Other Decks in Technology
See All in Technology
「良さそう」と「とても良い」の間には 「良さそうだがホンマか」がたくさんある / 2025.07.01 LLM品質Night
smiyawaki0820
1
410
作曲家がボカロを使うようにPdMはAIを使え
itotaxi
0
280
"サービスチーム" での技術選定 / Making Technology Decisions for the Service Team
kaminashi
1
200
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
5
4.3k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
920
解析の定理証明実践@Lean 4
dec9ue
1
180
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
100
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
150
本が全く読めなかった過去の自分へ
genshun9
0
640
OpenHands🤲にContributeしてみた
kotauchisunsun
1
480
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
140
mrubyと micro-ROSが繋ぐロボットの世界
kishima
2
370
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
337
57k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
710
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Producing Creativity
orderedlist
PRO
346
40k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Done Done
chrislema
184
16k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
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