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
8.3k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS研修 AWS IAM
2021年度リクルート エンジニアコース新人研修の講義資料です
Recruit
PRO
August 18, 2021
More Decks by Recruit
See All by Recruit
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
6
2.4k
ブラウザ研修 2026
recruitengineers
PRO
8
1.5k
事業価値と Engineering 2026年度版
recruitengineers
PRO
58
28k
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
1.3k
JavaScript 研修 (2026)
recruitengineers
PRO
2
770
TypeScript入門 2026
recruitengineers
PRO
3
1.4k
モダンフロントエンド 開発研修
recruitengineers
PRO
4
1.1k
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
1k
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
9
3.8k
Other Decks in Technology
See All in Technology
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
4
2.6k
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
1.9k
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
310
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
220
Tab5をRubyで動くパソコンにする
kishima
2
260
20260903 Tokyo Jazug Night #62 | Azure エンジニアよ、 その環境は本当にセキュアか?
olivia_0707
1
640
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
170
module Synths; end
asonas
1
130
2026-09-10 【Snowflake World Tour Tokyo 2026】dbt Core と Snowflake で実現する多層的なデータガバナンス / Multi-Layered Data Governance Powered by dbt Core and Snowflake
civitaspo
0
230
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
230
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
120
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
0
190
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
310
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
WENDY [Excerpt]
tessaabrams
12
39k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
BBQ
matthewcrist
89
10k
The Language of Interfaces
destraynor
162
27k
Making the Leap to Tech Lead
cromwellryan
135
10k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Discover your Explorer Soul
emna__ayadi
2
1.3k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
WCS-LA-2024
lcolladotor
0
820
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
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