Slide 1

Slide 1 text

©2024 Metaps Holdings, Inc. OU外でもIAM Identity Centerを 使いたい! 株式会社メタップスホールディングス SRE こかも (岡本 健太郎)

Slide 2

Slide 2 text

©2024 Metaps Holdings, Inc. ⾃⼰紹介 略歴 SIerでクラウドインフラ3年 -> 現職でSRE 趣味 DJ, ⾳楽ゲーム, ポーカー, ダーツ, サウナ 岡本 健太郎 株式会社メタップスホールディングス SRE Okamoto Kentaro @kokamoto01 フォローしてね

Slide 3

Slide 3 text

©2024 Metaps Holdings, Inc. 社名
 株式会社メタップスホールディングス 
 (Metaps Holdings, Inc.) 
 設立
 2023年1月26日 
 資本金
 100百万円(資本準備金を含む)
 ※2023年12月末時点
 所在地
 東京都渋谷区渋谷二丁目24番12号 
 渋谷スクランブルスクエア 
 従業員数
 72名 ※2023年12月末時点
 経営陣
 代表取締役 山﨑 祐一郎 取締役   原 大輔
 取締役   青沼 克典 
 社外取締役 大谷 仁人 
 監査役   萩野矢 宏樹 事業内容
 クラウドとAIを中心にしたインキュベーション 
 テクノロジー企業への投資 
 
 MISSION テクノロジーでお金と経済のあり方を変える 
 
 世界を解き放つ 
 
 
 VISION 会社概要

Slide 4

Slide 4 text

©2024 Metaps Holdings, Inc. 4 srestはAWSファンデーショナルテクニカルレビュー (FTR)認証を取得しています 無料トライアル実施中 >

Slide 5

Slide 5 text

©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. 5 インフラ基盤 アプリケーションが 動いてる環境 アプリケーションのエラーを トラッキングするツール オンコール担当 (SRE) に障害を エスカレーションするサービス インフラ基盤の監視 エラートラッキング オンコール通知 srestは各種インフラサービスのインテグレーション先となり、 各サービスのイベントログを集積‧可視化する基盤に イベントログの集積‧可視化 システムメトリクス 監視ツール 5 5 無料トライアル実施中 >

Slide 6

Slide 6 text

©2024 Metaps Holdings, Inc. IAM Identity Center

Slide 7

Slide 7 text

©2024 Metaps Holdings, Inc. https://speakerdeck.com/opelab/20240621-aws-summit-iam ⽇本⼀わかりやすいIAM Identity Centerの概要はこちら

Slide 8

Slide 8 text

©2024 Metaps Holdings, Inc. IAMポリシーのみでAWSアカウントにログインできるSSOサービス 「許可セット」を使うことで IAMポリシー名を指定するだけで ログイン先の設定が完了する 😆 アクセスキー&シークレットアクセス キーを抹消できる MFAを各アカウントで 設定する必要がなくなる CLIでもaws sso loginコマンドで⼀発 -> 依存関係がなくシンプル つまりIAMユーザー不要!?

Slide 9

Slide 9 text

©2024 Metaps Holdings, Inc. 許可セットには落とし⽳がある OU(Organization Unit) 内に 存在するアカウントのみに設定可能 ビジネスパートナーに SSO適⽤できない!?

Slide 10

Slide 10 text

©2024 Metaps Holdings, Inc. じゃあどうすればいいの?

Slide 11

Slide 11 text

©2024 Metaps Holdings, Inc. 「IAM Identity Centerアプリケーション」を使いましょう SAML認証経由で AWSアカウントにアクセス (AssumeRole) IAMポリシーではなく IAMロールを参照する 信頼ポリシーの変更不要!

Slide 12

Slide 12 text

©2024 Metaps Holdings, Inc. 作り⽅ ● アプリケーション -> 「カタログからアプリケーションを選択」 -> 「External AWS Account」 ● 「IAM Identity Center メタデータファイル」をダウンロード (GitHub等ソースコード管理下におくことを推奨)

Slide 13

Slide 13 text

©2024 Metaps Holdings, Inc. 作り⽅ ● ログイン先アカウントで IAM -> IDプロバイダを追加 Terraformでリソースを作成することができるので、メタデータの管理が活きる

Slide 14

Slide 14 text

©2024 Metaps Holdings, Inc. 作り⽅ ● 親アカウントに戻って、IICアプリケーションを選択 ->「属性マッピング」 ● IICグループにユーザーをアタッチ ● IICグループをアプリケーションに割り当てる アプリケーションのユー ザー属性 ユーザー属性マッピング 形式 https://aws.amazon.com/SAML /Attributes/Role https://aws.amazon.com/SAML/Attributes/Role arn:aws:iam::{AWSアカウントID}:saml-provider/{IDプロバイ ダー},arn:aws:iam::{AWSアカウントID}:role/{IAMロール} unspecified 属性マッピングの設定例

Slide 15

Slide 15 text

©2024 Metaps Holdings, Inc. できた!

Slide 16

Slide 16 text

©2024 Metaps Holdings, Inc. マネジメントコンソールのアクセスはできた。 でもCLIでのアクセスはどうすれば?

Slide 17

Slide 17 text

©2024 Metaps Holdings, Inc. 現状公式から提供されている⽅法は現実的ではない https://repost.aws/ja/knowledge-center/aws-cli-call-store-saml-credentials 1. ブラウザでデベロッパーツールを開きPOSTメソッドからSAMLResponseを探す 2. 1のログを保存して aws sts assume-role-with-saml コマンドを⼊⼒ 3. 2の出⼒結果から”AccessKeyId”, ”SecretAccessKey”, ”SessionToken” を ~/.aws/credentials に保存 これ毎回やるの!?

Slide 18

Slide 18 text

©2024 Metaps Holdings, Inc. 「saml2aws」を使いましょう https://github.com/Versent/saml2aws

Slide 19

Slide 19 text

©2024 Metaps Holdings, Inc. 現状公式から提供されている⽅法は現実的ではない https://repost.aws/ja/knowledge-center/aws-cli-call-store-saml-credentials 1. ブラウザでデベロッパーツールを開きPOSTメソッドからSAMLResponseを探す 2. 1のログを保存して aws sts assume-role-with-saml コマンドを⼊⼒ 3. 2の出⼒結果から”AccessKeyId”, ”SecretAccessKey”, ”SessionToken” を ~/.aws/credentials に保存 これ毎回やるの!? この作業を⾃動化してくれます

Slide 20

Slide 20 text

©2024 Metaps Holdings, Inc. どんな仕組み? [example] name = {saml2awsプロファイル名} app_id = url = {IICアプリケーション URL} username = provider = Browser mfa = Auto mfa_ip_address = skip_verify = false timeout = 0 aws_urn = urn:amazon:webservices aws_session_duration = 28800 aws_profile = {AWS CLIプロファイル名} resource_id = subdomain = role_arn = region = http_attempts_count = http_retry_delay = credentials_file = saml_cache = false saml_cache_file = target_url = disable_remember_device = false disable_sessions = false download_browser_driver = false headless = false prompter = ~/.saml2aws (フォーマットバグってますが許してください) ~ % saml2aws login -a {saml2awsプロファイル名} [--download-browser-driver] 1. ~/.saml2awsに設定を記載 2. ターミナルで 下記のコマンドを⼊⼒する aws sso loginコマンドと 同じ感覚で使える! -> STSの⾃動発⾏ + AWS CLIのプロファイル⾃動追加

Slide 21

Slide 21 text

©2024 Metaps Holdings, Inc. IIC アプリケーションURL ~/.saml2aws

Slide 22

Slide 22 text

©2024 Metaps Holdings, Inc. 苦労したこと

Slide 23

Slide 23 text

©2024 Metaps Holdings, Inc. Terraform AWSプロバイダーが(⼀部)対応してない https://registry.terraform.io/providers/hashicorp/awscc/latest/docs/data -sources/sso_application ⭕ AWS SSO Admin (IIC) ❌ IICアプリケーション awsccプロバイダーでは対応できるが...? -> Terraformプロバイダー利⽤ポリシーが 社内で決まっており今回は断念

Slide 24

Slide 24 text

©2024 Metaps Holdings, Inc. Google Workspaceとの相性が悪かった 弊社で運⽤しているGoogle Workspaceの組織は2アカウントで契約中 ‧正社員 ‧業務委託 IICのIDソースは1対1での紐付け - Google WorkspaceのIDをソースとしてしまうと 業務を担当している⼈全員にSSOが⾏き渡らない IICが発⾏している IDソースを使うことで解決