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 Systems Manager Session ManagerとIAMでシンプルにユ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
株式会社ヌーラボ
PRO
March 13, 2020
Technology
4.5k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS Systems Manager Session ManagerとIAMでシンプルにユーザーを管理する/Manage users simply with AWS Systems Manager Session Manager and IAM
株式会社ヌーラボ
PRO
March 13, 2020
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
The_Evolution_of_Bits_AI_SRE.pdf
nulabinc
PRO
0
340
進化するBits AI SREと私と組織
nulabinc
PRO
4
790
実践 Datadog MCP Server
nulabinc
PRO
4
790
全社横断PjM⽀援チーム “PEaS”の取り組みと プロジェクトマネジメント でのAI活⽤について
nulabinc
PRO
0
190
Datadog の RBAC のすべて
nulabinc
PRO
4
840
Datadog Live Tokyo 2025登壇資料
nulabinc
PRO
0
170
How to Migrate Your Backlog Free Plan
nulabinc
PRO
0
250
チームワークマネジメント Bar #5
nulabinc
PRO
0
94
Geeks Who Drink Fukuoka - 202508
nulabinc
PRO
0
72
Other Decks in Technology
See All in Technology
記録をかんたんに、提案をパーソナルに ── AIであすけんが目指すもの
oprstchn
0
130
#エンジニアBooks 30分でわかる 「技術記事を書く技術」 / engineer-books 2026-06-30
jnchito
1
180
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
0
100
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
800
Terraform 101 (初心者向け) 資料
shuadachi
0
170
AI時代における最適なQA組織の作り方
ymty
3
350
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
180
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
8k
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
3
2k
5分でわかるDuckDB Quack
chanyou0311
4
310
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
200
HookでSAST、CIでSAST、SCAでどうにかしている話 / layered-security-for-ai-written-code-with-sast-and-sca
yamaguchitk333
0
100
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.6k
Visualization
eitanlees
152
17k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Odyssey Design
rkendrick25
PRO
2
720
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
230
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Cult of Friendly URLs
andyhume
79
6.9k
Transcript
AWS Systems Manager Session ManagerとIAMでシンプルに ユーザーを管理する Masayuki Nakano / @maaaato
JAWS DAYS 2020 Masayuki Nakano / @maaaato JAWS DAYS 2020 1
SRE 筋トレ歴3年目 ベンチプレス100kg 1rep blog: https://blog.nikuniku.me dev.to: https://dev.to/maaaato github: https://github.com/maaaato
SRE / Emacs / AWS / Terraform / Ansible / Workout / English / Personal trainer Masayuki Nakano @maaaato @Stand_IO 2
想定聴講者 • AWS初心者の方 • スタートアップでいつの間にかAWSの管理をしている方 • SessionManager, IAMに興味がある方 • 社員数が増えてきてそろそろAWSのユーザー管理をどうしようかなと考えている方
本セッションは「初心者カテゴリ」のセッションです 3
• SessionManagerの具体的なユースケースとIAMの組み合わせについて理解する • マルチアカウント運用について理解する • 自社のAWS運用の見直しのキッカケに ゴール ※本日お話する内容はnulabの話ではなく、個人で進めているプロジェクトの内容、発見のシェアになります 4
1. SessionManagerの概要、具体的な使い方 2. SessionManagerとIAMを組み合わせる 3. マルチアカウント、SSOについて 4. まとめ アジェンダ 5
TIPS
It describes the major challenge here. SessionManagerとは 6
• エンジニアがジョインしたタイミングでサーバーへSSH鍵の登録 • エンジニアが退職した時にSSH鍵の削除 • 誰がどのユーザーを使いサーバー上で何をしたのか知りたい/知る必要がある 日々の業務でこんな事はないですか? 7
”Session Manager はフルマネージド型 AWS Systems Manager 機能であり、インタラクティブな ワ ンクリックブラウザベースのシェルや AWS
CLI を介して Amazon EC2 インスタンス、オンプレミスイ ン スタンス、および仮想マシン (VM) を管理できます。Session Manager を使用すると、インバウンド ポートを開いたり、踏み台ホストを維持したり、 SSH キーを管理したりすることなく、監査可能なインスタ ンスを安全に管理できます。 また、Session Manager を使用すると、マネージドインスタンスへの簡単 なワンクリックのクロスプラットフォームアクセスをエンドユーザーに提供しつつ、インスタンスへの制御 されたアクセス、厳格なセキュリティプラクティス、 完全に監査可能なログ (インスタンスアクセスの詳細 を含む) が要求される企業ポリシーに簡単に準拠できます。 “ 8
• SSHの鍵の登録をせずにインスタンスへログイン(Privateも可) • インスタンスのSecurityGroupにSSHを許可する必要がない • インスタンス内での操作ログをS3へ保存 • 「いつ」「だれが」「どのインスタンスへログインしたか」証跡を取れる • Linux,Windowsにも対応
つまりこんなことができる… 9
以前、SSH鍵登録でこんなことを... S3にSSH鍵とその鍵のユーザー名を記述した テキストを用意 Autoscalingで起動したインスタンスの cloud-initに S3からSSH鍵とテキストを取得するようにし、起動時 に自動作成 結局、S3にある鍵の管理をしないといけない。 インスタンス起動時にユーザーは作るがそれ以降は 作らないので、途中で
SSH鍵を登録する場合、 Ansibleなどで作成する必要があった。 10
1. ssm-agentのインストール 2. 適切なIAMロールポリシー 3. Session Manager Plugin 4. VPCエンドポイントとPrivateLink
SessionManagerを使うために必要なこと... 11
1. ssm-agentのインストール 2. 適切なIAMロールポリシー 3. Session Manager Plugin 4. VPCエンドポイントとPrivateLink
SessionManagerを使うために必要なこと... 12
Amazon Linux: Amazon Linux1 2017年9月以降のAMIに関してはインストール済み それ以前のAMIやAmazon ECS 対応のAMIは手動インストールが必要 Ubuntu: 20180627で識別されるUbuntu
Server 16.04 以降のAMIに関してはインストール済み それ以前のAMIは手動インストールが必要 その他: 手動インストールが必要 ssm-agentのインストール 13
1. ssm-agentのインストール 2. 適切なIAMロールポリシー 3. Session Manager Plugin 4. VPCエンドポイントとPrivateLink
SessionManagerを使うために必要なこと... 14
AmazonEC2RoleforSSMは将来的に非推奨になる AmazonSSMManagedInstanceCoreはSSMに関するアクションを兼ね揃えている SessionManagerに限ったインスタンスプロファイルを作成 適切なIAMロールポリシー https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-m anager-getting-started-instance-profile.html 15
1. ssm-agentのインストール 2. 適切なIAMロールポリシー 3. Session Manager Plugin 4. VPCエンドポイントとPrivateLink
SessionManagerを使うために必要なこと... 16
ローカルからSessionManager経由でインスタンスにログインする為に必要 Windows、macOS、Linux、Ubuntuで利用可能 aws ssm start-session --target i-08c9cxxxxxxxxxxxx 接続先を指定するにはインスタンスIDを使う必要がある Session Manager
Plugin https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-m anager-working-with-install-plugin.html 17
1. ssm-agentのインストール 2. 適切なIAMロールポリシー 3. Session Manager Plugin 4. VPCエンドポイントとPrivateLink
SessionManagerを使うために必要なこと... 18
VPCエンドポイントとPrivateLinkの例 VPCエンドポイント VPC内からVPC外のサービスにアクセスする為に使用 SessionManagerの場合、S3へログの書き出しがある為、 VPCエンドポイントとしてS3が必要 加えて、SessionManagerのエンドポイントとして PrivateLinkの設定が必要 ※NAT Gatewayでも可能 PrivateLink
ルートテーブル 19
VPCエンドポイントとPrivateLinkの例 Public Subnet Private Subnet 20
SessionManagerのhistory 「いつ」「だれが」「どのインスタンスで」「なにをしたのか」 ISMS監査で必要になる トラブル時の原因追求のサポート 21
CloudWatchLogsのフィルタと組み合わせる CloudWatchLogs SNS Lambda CloudWatchLogsでフィルタし、特定のコマンド(文字列)がヒットしたら SNS、Lambda、Alartを呼びだし通知 する事ができる 例えば、sudoコマンドを実行されたら通知したいなど Alarm 22
It describes the major challenge here. SessionManagerと IAMを組み合わせる 23
• SessionManagerでログインした時のユーザーを変えたい ◦ デフォルトのユーザーはssm-userになるので指定したい • インスタンス毎にログインできるIAMユーザーを指定したい ◦ ユーザーAはtag: Production、ユーザーBはtag: Developと分けたい
SessionManagerとIAMを組み合わせる 24
1. SessionManagerの設定画面でRun As supportを有効にする 2. IAMユーザー/ロールのタグにKey:SSMSessionRunAsを追加し、ValueにOSのユー ザーを指定する SessionManagerでログインするユーザーは変えられる https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-pr eferences-run-as.html
25
SessionManagerでログインするユーザーは変えられる 26
SessionManagerでログインするユーザーは変えられる IAMユーザー/IAMロールのTagsに追加 ValueにSessionManagerでログインするユーザー名を指定 このユーザーはOSに作成しておく必要がある 27
インスタンス毎にログインできるIAMユーザーを指定する Deny Allow Allow Allow Name:Production Name:Develop UserA UserB 28
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["ssm:StartSession"],
"Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/Name": ["Production"], "ssm:resourceTag/Name": ["Develop"] } } } ] } インスタンス毎にログインできるIAMユーザーを指定する https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/getting-started-restrict-acc ess-examples.html { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["ssm:StartSession"], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/Name": ["Develop"] } } } ] } UserA UserB 29
• SSHの鍵管理の作業から開放 • パブリックにSSHポートを開く必要が無いのでセキュリティ向上に繋がる • IAMと組み合わせる事で「だれが」「どのインスタンスで」「なにをしたのか」がわかる • IAMユーザー/ロールを見ればどのユーザーでログインできるのか、どのインスタンスにログインできるかわかる SessionManagerを使うと... 30
It describes the major challenge here. マルチアカウントとSSO 31 TIPS
単一のアカウントだと管理するアカウントが一つなので運用が楽になる一方、以下のような 問題が起こるケースがある • 本番環境と開発環境がアカウント内に共存している為、オペミスで本番環境へ影響を 与える可能性がある • ガバナンスの観点から本番環境を閲覧できるユーザーを絞るのが大変 なぜマルチアカウント... 32
マルチアカウントのメリットは以下の通り • 本番環境と開発環境がアカウント単位で分かれるのでお互いの環境に影響を与えるこ とが少なくなる(権限管理をしっかりしないとゼロにはならない) • ガバナンスの観点から本番環境、開発環境へアクセスできるユーザー管理がしやすく なる 詳しくは以下の資料が参考になります https://www.youtube.com/watch?v=vVt60Ja7nEk https://d0.awsstatic.com/events/jp/2017/summit/slide/D4T2-2.pdf
33 マルチアカウントのメリット
マルチアカウントのデメリットは以下の通り • アカウントが増えることによって構築コストが増える • 支払い管理が煩雑になる • アカウント作成のコストが高い マルチアカウントのデメリット 34
”AWS でのワークロードを拡大しスケールするときに、 AWS Organizations は環境の一元管理に役立ちま す。成長しているスタートアップでも、大規模な企業でも、 Organizations があれば、請求の一元管理や、ア ク セス、コンプライアンス、セキュリティの制御、
AWS アカウント間でのリソースの共有ができます。 AWS Organizations を使用すると、アカウントの作成を自動化し、ビジネスニーズを反映したアカウントのグ ループを作成し、それらのグループにポリシーを適用して管理できます。 すべての AWS アカウントに対して単 一の支払い方法を設定すれば、請求を簡単にすることもできます。他の AWS のサービスと統合して Organizations を使用すれば、組織のアカウント全体の設定とリソース共有を一元的に定義できます。すべ ての AWS のお客様は、追加料金なしで AWS Organizations を利用できます。” 35
• 複数アカウントの一元管理 • AWSアカウント管理の自動化 • 請求の簡素化(Consolidated Billing) つまりこんなことができる… 36
• 組織 • マスターアカウント • ルート • 組織単位(Organizations Unit) •
アカウント • ServiceControllPolicy(SCP) AWS Organizationsの概要図 https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_getting-s tarted_concepts.html 37
組織の中にルート、OU、アカウントなどが含まれる 1つのAWSアカウントが複数の組織のメンバーになることはできない 組織/AWS Organizations 38
組織にアカウントを作成、招待、削除、招待管理、ポリシー適応が出来る マスターアカウント/AWS Organizations マスターアカウント 39
組織のすべてのアカウントが設定された親コンテナポリシーをルートに適用する場 合は、組織内のすべてのOUとアカウントに適用される ルート/AWS Organizations 40
OUの枝があり、先端にツリーの葉であるアカウントが紐づく OUは厳密に親を1つ持つ事ができ、現在各アカウントを厳密に1つのOUメンバーにする事が できる 組織単位(OU)/AWS Organizations 41
マスターアカウント以外のアカウントをメンバーアカウントと呼ぶ アカウントが組織のメンバーになる事ができるのは一度に1つのみ(OUも同様) アカウント/AWS Organizations 42
組織内のすべてのアカウントの最大使用アクセス権限を一元的に管理できる機能 SCPとアカウント内のIAMポリシー、両方で許可されているアクションが実行可能 SCP/AWS Organizations 43
SCP SCP/AWS Organizations Allow: S3:* Allow: SQS:* Allow: S3:* Allow:
EC2:* IAM(アカウント内) SCPとIAMで指定されている S3へのアクションのみ実行可能 一致していないEC2への アクションは実行不可能 44
AWS Organizationsを使った例 Admin/OU Service/OU Sandbox/OU Audit Custodian API/Prod API/Dev Developer
Sandbox Organization 45
Custodianアカウントの使用例 Admin/OU Service/OU Sandbox/OU Audit API/Prod API/Dev Developer Sandbox Organization
Custodian OUにAdminを作成し、管理関係のアカウントを Admin配下に作成する CustodianアカウントにてIAMユーザーの管理を行い、 Admin他、Service、 SandboxへのログインはCustodianを経由する 46
クロスアカウントアクセス あるアカウントのユーザーと別のアカウントのロール を紐付け、別のアカウントへログインしたり、ロールに 紐づくアクションを実行できる IAMユーザーはCustodianにのみで管理 他のアカウントに関しては Switchロールでログインす る IAMユーザーを各アカウント毎に用意する必要が無く なる
Custodian経由で各アカウントへログイン マスターアカウント Custodian Audit API / Prod API / Dev Developer 47
マルチアカウント + SSO(GSuite) GSuite マスターアカウント Custodian Audit API / Prod
API / Dev Developer マスターアカウントの管理用ロールへ Switch(一部のユーザー) 一般ユーザーのルート • 管理ユーザーはマスターアカウントと Custodianにある IAMロールのarnを設定 • 一般ユーザーは CustodianにあるIAMロールのarnを設 定 48 管理ユーザー 一般ユーザー
• AWSOrganizationsを使えば複数アカウントの一元管理、アカウント管理の自動化が 図れる • SSOを使うことでIAMユーザーを増やすことがなくIAMロールで完結する • IdP側でユーザーとロールのarnを管理するのではなく、Custodian側をコード管理す るとわかりやすい マルチアカウント +
SSOで出来ること 49
It describes the major challenge here. まとめ 50
SessionManagerを使うことでSSH鍵の登録作業が解決 作業ログの取得、フィルタによる検知が可能 IAMと組み合わせることでアクセス可能なインスタンスのコントロールが可能 まとめ 51 マルチアカウントによってガバナンスの向上が可能 一方、ガバナンスと利便性のバランスが課題になる 普段の業務で使っているツールと組み合わせできるのかは要検証
It describes the major challenge here. ご清聴ありがとうございました 52