$30 off During Our Annual Pro Sale. View Details »
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
8k
AWS研修 AWS IAM
2021年度リクルート エンジニアコース新人研修の講義資料です
Recruit
PRO
August 18, 2021
Tweet
Share
More Decks by Recruit
See All by Recruit
事業の財務責任に向き合うリクルートデータプラットフォームのFinOps
recruitengineers
PRO
2
26
AI-DLCを現場にインストールしてみた:プロトタイプ開発で分かったこと・やめたこと
recruitengineers
PRO
2
160
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
840
あなたの知らない Linuxカーネル脆弱性の世界
recruitengineers
PRO
4
320
dbtとBigQuery MLで実現する リクルートの営業支援基盤のモデル開発と保守運用
recruitengineers
PRO
5
250
『ホットペッパービューティー』のiOSアプリをUIKitからSwiftUIへ段階的に移行するためにやったこと
recruitengineers
PRO
4
1.8k
経営の意思決定を加速する 「事業KPIダッシュボード」構築の全貌
recruitengineers
PRO
4
410
Browser
recruitengineers
PRO
12
4k
JavaScript 研修
recruitengineers
PRO
9
2.2k
Other Decks in Technology
See All in Technology
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
920
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
390
regrowth_tokyo_2025_securityagent
hiashisan
0
260
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
530
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
2
840
ウェルネス SaaS × AI、1,000万ユーザーを支える 業界特化 AI プロダクト開発への道のり
hacomono
PRO
0
160
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
0
540
学習データって増やせばいいんですか?
ftakahashi
2
510
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
940
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
2k
mairuでつくるクレデンシャルレス開発環境 / Credential-less development environment using Mailru
mirakui
5
550
Jakarta Agentic AI Specification - Status and Future
reza_rahman
0
110
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
160
A Tale of Four Properties
chriscoyier
162
23k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
83
Navigating Team Friction
lara
191
16k
Producing Creativity
orderedlist
PRO
348
40k
Agile that works and the tools we love
rasmusluckow
331
21k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandezseo
1
1.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
340
Accessibility Awareness
sabderemane
0
14
Exploring anti-patterns in Rails
aemeredith
2
200
Ruling the World: When Life Gets Gamed
codingconduct
0
91
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