Soumettre la recherche
Mettre en ligne
Serverless AWS構成でセキュアなSPAを目指す
•
50 j'aime
•
16,969 vues
Masayuki Kato
Suivre
2017年1月17日 Serverless Meetup Tokyo #2 で発表した資料です。
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 45
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計
Serverworks Co.,Ltd.
AWS OpsWorksハンズオン
AWS OpsWorksハンズオン
Amazon Web Services Japan
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI
Recommandé
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計
Serverworks Co.,Ltd.
AWS OpsWorksハンズオン
AWS OpsWorksハンズオン
Amazon Web Services Japan
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI
AWSからのメール送信
AWSからのメール送信
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
おひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
Makio Tsukamoto
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
Amazon Web Services Japan
Amazon Redshift 概要 (20分版)
Amazon Redshift 概要 (20分版)
Amazon Web Services Japan
VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話
Noritaka Sekiyama
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
Amazon Web Services Japan
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
Amazon Web Services Japan
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
Yoshiyasu SAEKI
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch
Amazon Web Services Japan
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
Amazon Web Services Japan
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
Amazon Web Services Japan
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
Amazon Web Services Japan
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
Amazon Web Services Japan
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
Masaya Tahara
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発
Amazon Web Services Japan
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
Hinemos
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
Atsushi Fukui
Contenu connexe
Tendances
AWSからのメール送信
AWSからのメール送信
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
おひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
Makio Tsukamoto
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
Amazon Web Services Japan
Amazon Redshift 概要 (20分版)
Amazon Redshift 概要 (20分版)
Amazon Web Services Japan
VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話
Noritaka Sekiyama
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
Amazon Web Services Japan
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
Amazon Web Services Japan
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
Yoshiyasu SAEKI
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch
Amazon Web Services Japan
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
Amazon Web Services Japan
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
Amazon Web Services Japan
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
Amazon Web Services Japan
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
Amazon Web Services Japan
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
Masaya Tahara
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発
Amazon Web Services Japan
Tendances
(20)
AWSからのメール送信
AWSからのメール送信
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
おひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
Amazon Redshift 概要 (20分版)
Amazon Redshift 概要 (20分版)
VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発
Similaire à Serverless AWS構成でセキュアなSPAを目指す
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
Hinemos
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
Atsushi Fukui
AWS Black Belt Online Seminar 2016 AWS IoT
AWS Black Belt Online Seminar 2016 AWS IoT
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS re:Invent 2017速報
AWS Black Belt Online Seminar 2017 AWS re:Invent 2017速報
Amazon Web Services Japan
Reinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdf
Amazon Web Services Japan
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
Hiroki Takeda
祝★AWSスタンダードコンサルティングパートナーに認定されました
祝★AWSスタンダードコンサルティングパートナーに認定されました
Core Concept Technologies
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
江藤 武司
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
Amazon Web Services Japan
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Amazon Web Services Japan
Serverless Application Security on AWS
Serverless Application Security on AWS
Amazon Web Services Japan
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
Security Operations and Automation on AWS
Security Operations and Automation on AWS
Noritaka Sekiyama
Serverless for VUI
Serverless for VUI
真吾 吉田
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
Masahiko Ebisuda
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
Godai Nakamura
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識
Minoru Naito
20190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #4
Issei Hiraoka
JAWS-UG アーキテクチャ専門支部 re:Invent Management Tools ダイジェスト
JAWS-UG アーキテクチャ専門支部 re:Invent Management Tools ダイジェスト
Yukitaka Ohmura
AWS Black Belt Online Seminar 2017 AWS Summit Tokyo 2017 まとめ
AWS Black Belt Online Seminar 2017 AWS Summit Tokyo 2017 まとめ
Amazon Web Services Japan
Similaire à Serverless AWS構成でセキュアなSPAを目指す
(20)
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
AWS Black Belt Online Seminar 2016 AWS IoT
AWS Black Belt Online Seminar 2016 AWS IoT
AWS Black Belt Online Seminar 2017 AWS re:Invent 2017速報
AWS Black Belt Online Seminar 2017 AWS re:Invent 2017速報
Reinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdf
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
祝★AWSスタンダードコンサルティングパートナーに認定されました
祝★AWSスタンダードコンサルティングパートナーに認定されました
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless Application Security on AWS
Serverless Application Security on AWS
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Security Operations and Automation on AWS
Security Operations and Automation on AWS
Serverless for VUI
Serverless for VUI
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識
20190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #4
JAWS-UG アーキテクチャ専門支部 re:Invent Management Tools ダイジェスト
JAWS-UG アーキテクチャ専門支部 re:Invent Management Tools ダイジェスト
AWS Black Belt Online Seminar 2017 AWS Summit Tokyo 2017 まとめ
AWS Black Belt Online Seminar 2017 AWS Summit Tokyo 2017 まとめ
Serverless AWS構成でセキュアなSPAを目指す
1.
Copyright© 2016.All rights
reserved. Copyright© 2017 All rights reserved. 2017/01/17 ハンズラボ 株式会社 Serverless Meetup Tokyo #2 Serverless AWS構成で セキュアなSPAを⽬指す!
2.
⾃⼰紹介 • 名前:加藤 雅之 •
所属:ハンズラボ株式会社 • 担当:「AWSチーム リーダー」 東急ハンズ - AWSインフラ、IT統制 ハンズラボ 外販 - AWS構築運⽤⽀援
3.
Copyright© 2017 All
rights reserved.3 ハンズラボ株式会社 • 情シス部⾨ Ø 東急ハンズの各種システムの内製開発と運⽤保守 • 外販 Ø ⾃社開発の経験を活かした受託開発、内製⽀援 東急ハンズのシステム⼦会社
4.
Copyright© 2017 All
rights reserved.4 APN Architecture of the Year 2015 受賞 • AWS Partner Networkの利用アーキテクチャが 「最も先進的、または実用的、チャレンジングなもの」 が選ばれる
5.
Copyright© 2017 All
rights reserved.5 東急ハンズ ポイントシステム • ミッションクリティカルなポイントシステムを、 AWSクラウドネイティブにて構築
6.
Copyright© 2017 All
rights reserved.6 AWS Samurai 2015をCEO⻑⾕川が受賞 • AWSのユーザーコミュニティに貢献した方が選ばれる
7.
Copyright© 2017 All
rights reserved.7 今⽇お話する内容 Serverless AWS構成で セキュアなSPAを⽬指す!
8.
Copyright© 2017 All
rights reserved.8 今⽇お話する内容 過去に作成したSPAなServerlessシステムの知⾒をベースに、 よりセキュリティを意識した、別バージョンのシステム Serverless AWS構成で セキュアなSPAを⽬指す!
9.
Copyright© 2017 All
rights reserved.9 の紹介ではなく 東急ハンズの考え⽅「ここは、ヒント・マーケット」 何を売るところですか?とたずねられたら、 「それはヒントです!」と言い切りたい。 そう、ここには「できあいの答え」は、ひとつも置いてありません。 全フロアが、何かをつくりたい人、はじめたい人にとっての 「きっかけ売り場」であり、「発想の一歩目」である。 モノ・コト・ヒトのすべてが出会い、 すべての新しい価値がそこから生み出される、うれしい場所へ。 東急ハンズHP 「ここは、ヒント・マーケット」とは? https://www.tokyu-hands.co.jp/saiyo/shinsotsu/about/ そんな思いを Serverless Meetup Tokyo にも
10.
Copyright© 2017 All
rights reserved.10 今⽇お話する内容 Serverless AWS構成で セキュアなSPAを作成する様⼦を 順を追っていきます!
11.
Copyright© 2017 All
rights reserved.11 ちなみに過去に作成した Serverless Point System
12.
Copyright© 2017 All
rights reserved.12 それは唐突に起こった ねぇねぇ加藤くん。 ちょっといいかい? n開発・テストも落ち着きつつある2015年 年末頃 忍び寄る大きな影
13.
Copyright© 2017 All
rights reserved.13 それは唐突に起こった ねぇねぇ加藤くん。 ちょっといいかい? このプロジェクト 中止ね n開発・テストも落ち着きつつある2015年 年末頃
14.
Copyright© 2017 All
rights reserved.14 ⼤⼈の事情により、 使われる事がないポイントシステムが完成
15.
Copyright© 2017 All
rights reserved.15 システムに罪はない
16.
Copyright© 2017 All
rights reserved.16 気を取り直して Let's cook ! Serverless AWS構成で セキュアなSPAを⽬指す! そんなノウハウが詰まった
17.
Copyright© 2017 All
rights reserved.17 まずはSPAのベースとなる静的サイト nHTMLやJavascript、画像ファイル等をS3へ設置 nより多くのアクセスに耐えられるようにCloudfrontで CDN化。同時にS3へのアクセスはCloudfrontからしか 取得出来ない様に
18.
Copyright© 2017 All
rights reserved.18 ドメインの取得とSSL証明書の設置 nRoute 53を使⽤してドメインの取得とDNS登録 nAWS Certificate Managerにて証明書の作成と Cloudfront への設置
19.
Copyright© 2017 All
rights reserved.19 静的なServerless の完成 これも⽴派なServerless!
20.
Copyright© 2017 All
rights reserved.20 次は動的な情報をJSONで返すAPIの⼊り⼝ nAPI GatewayからAPIを作成 nCORS(Cross-Origin Resource Sharing) 設定を忘れずに l SPAとは異なるドメインになるのでCORSの有効化を ⾏う
21.
Copyright© 2017 All
rights reserved.21 動的な情報を処理するFunction nAPI Gatewayから呼び出されるバックエンドにはみん なが⼤好きなLambda n実⾏権限(Role)は必要最低限
22.
Copyright© 2017 All
rights reserved.22 動的な情報を保持しているデータストア nDynamoDBのテーブル作成 nLambdaの実⾏RoleにDynamoDBへのRead/Write権 限を付与 nDynamoDBからデータ取得するLambda、データを保 存するLambdaをそれぞれ作成。
23.
Copyright© 2017 All
rights reserved.23 API Gateway 周りをちまちまと nAPI Gateway に適切なリソースやメソッドでLambda を紐づけ l RESTful APIな思想にて nデプロイを⾏いJavascript のSDK⽣成を⾏う l SDKはSPAのS3へ保存 nSPA側でAPI呼び出しと⾮同期処理
24.
Copyright© 2017 All
rights reserved.24 XSS対策のためにAWS WAF nAWS WAF をAPI Gateway の前に挟む ※AWS WAFはAPI Gatewayに直接つかないので、 Cloudfront経由になる
25.
Copyright© 2017 All
rights reserved.25 動的でセキュアなServerless SPAの完成 らしくなって参りました
26.
Copyright© 2017 All
rights reserved.26 いよいよ個別ユーザー機能 nCognito で⽤意されているUser Pools(ユーザー認証基 盤)を使⽤しても良いが、今回はFederated Identitiesに ついて nFederated Identitiesには認証機能は付いておらず認可を ⾏う。認可元はOpenIDやSAML等を選べるが、今回は⾃ 分で作成するCustum Provider(通称Developer authenticated identities )とする
27.
Copyright© 2017 All
rights reserved.27 Developer Authenticated Identityの仕組み n認証フローは複数あるが拡張認証フローを使⽤する。 ⾃作ユーザーとCognitoのユニークなIdentityが対になっ ていて、ユーザーは受け取ったTokenを使⽤してAWS STS からAWSリソースに対するCredentialを受け取る。
28.
Copyright© 2017 All
rights reserved.28 Cognitoの登録 nFederated identitiesよりidentity poolを作成 l Authentication providersはcustumでユニークな provider nameにする l 認証済みのRole auhenticated identitesをデフォルト で作成
29.
Copyright© 2017 All
rights reserved.29 ユーザー登録Lambda nID/PASSのユーザー登録Lambdaを作る l DynamoDB ユーザーTableへIDとPassを保存
30.
Copyright© 2017 All
rights reserved.30 ユーザー認証Lambda n登録ユーザーの認証を⾏うログイン処理Lambdaを作る l ID/Passの検証し、作成したCognito identity pool へ getOpenIdTokenForDeveloperIdentityを⾏う。
31.
Copyright© 2017 All
rights reserved.31 クライアント処理とセンシティブなAPIの保護 n返却されたCognito Tokenをクライアントに保存 ngetCredentialsForIdentityを使⽤して、AWS STSから Credential(accessKey / secretKey / sessionToken) の取得して、apigClient.credentialに保存 nセンシティブなAPIのメソッドに対してAWS_IAMの認証 設定 nCognitoのAuthenticateRoleに上記のメソッドarmを許 可設定
32.
Copyright© 2017 All
rights reserved.32 ユーザー認証付きのセキュアなServerless しかし問題が。。。
33.
Copyright© 2017 All
rights reserved.33 有効期限に注意 nSTSのCredential有効期限は最⼤1時間 l Cognito Tokenで再取得 nCognito Tokenの有効期限は最⼤24時間 l ID と パスワードを送れば再取得可能だが、クライアン トに保管するわけにはいかない nログインをそれ以上維持させたい場合 l 独⾃認証部分の永続の為にToken化
34.
Copyright© 2017 All
rights reserved.34 ならば Json Web Token nHeaderとPayloadとSignatureという3つのセグメントか ら構成される Token 1 Header 署名アルゴリズムなどを含むJSON 2 Payload 実際に送信したいJSONデータそのもの 3 Signature HeaderとPayloadをBase64エンコードしたのちに、 “.” で連結した文字列に対して、 Headerに指定されたアルゴリズムで署名
35.
Copyright© 2017 All
rights reserved.35 JWTの何が良いのか? nセッションや単なるTokenとの⼤きな違いは 、 Payloadに クライアントに渡しても良いデータ(ユーザーID等)を 記載するので、疎結合となっているServerlessにとっては データ使い回しの勝⼿が良い。 nクライアントとAPI側でTokenのやり取りがあるが、もし悪 意あるユーザーが書き換えを⾏なっても、 Signature部分 にてチェックを⾏える。 - 復号できなければ不正なTokenとなる nCognitoのTokenもJWTで構成されている l クライアント側でのTokenの取り回しが共通化
36.
Copyright© 2017 All
rights reserved.36 実際のJWT(Cognito)
37.
Copyright© 2017 All
rights reserved.37 独⾃ Json Web Tokenの準備 nPayloadはユーザーに渡しても良い使い回す情報を⾃由 (JSON形式)に記載 nHeaderはtyp:JWTのalg:HS512( SHA-512 hash ) nSignatureに使うキーは可能であれば別々にしたい l 漏れた場合に別のユーザーになり済ませてしまう - KMS(Key Management Service)を使⽤
38.
Copyright© 2017 All
rights reserved.38 Key Management Service nマスターキーとデータキーがある l 実際のデータを暗号/復号化するのはデータキーだが、 データキー⾃体の⽣成と復号化をできるのはマスター キーとなっている。マスターキーの⽣データは取得す る事が出来ない。 nマスターキーはIDしか無いので、暗号/復号化する LambdaのRoleだけにデータキー操作の権限を付与すれ ば、マスターキーIDがあっても開発者でさえ復号化する 事が出来ない。 - データキーをJWTのsignatureで使⽤するハッシュ キーとする
39.
Copyright© 2017 All
rights reserved.39 暗号化:ログイン処理LambdaにJWT作成追加 nマスターキーIDを元にgenerateDataKeyで、⽣データ キーと暗号化データキーを取得する。 n準備していたJWTのHeaderとPayloadを、それぞれBase64 エンコードしてピリオドでつなぎ、取得した⽣データ キーをsha2ハッシュ値としてして暗号化したものが signatureとなり独⾃JWTが完成 n該当Lambda RoleにKMSの実⾏権限を付与 n最終的にCognito Tokenと独⾃JWTが返却となる。 独⾃JWTの有効期限についてはAPI側とクライアント側で ⾃由に合わせる。 n⽣データキーは即時に削除し、暗号化データキーをユー ザーと紐付けてDynamoDBに保存する
40.
Copyright© 2017 All
rights reserved.40 復号化:独⾃JWTの検証Lambdaの作成 n独⾃JWTの正当性を検証する為に、KMSへの復号化権限 を持ったRoleがついたLambdaを作成 nTokenの有効期限内であれば、マスターキーIDとユーザー に紐付いている暗号化データーキーを元にkms.decryptを ⾏い、⽣データキーを取得する。 nJWTの HeaderとPayloadを、それぞれBase64エンコードし てピリオドでつなぎ、取得した⽣データキーをハッシュ値 としてして暗号化したものが、signatureと⼀致すれば正 当なTokenとなる
41.
Copyright© 2017 All
rights reserved.41 認証を⾏いたいAPIへ実装 nAPI GatewayにてオーソライザーとしてLambdaを登録し、 検証を⾏いたいメソッドにて認証として選択 n認証が必要なAPIを呼び出す際には、クライアントで保管 している独⾃JWTをヘッダーに組み込んでコールする
42.
Copyright© 2017 All
rights reserved.42 セキュアなSPA で 良い感じなServerless
43.
Copyright© 2017 All
rights reserved.43 Cognitoでこんなセキュアな事も n⾃分のデータにはアクセス出来るが、他の⼈のデータへ はアクセス出来ない nS3プレフィックスやDynamoDB ファイングレインアク セスにて、${cognito-identity.amazonaws.com:sub} 変数が可 能になる
44.
Copyright© 2017 All
rights reserved.44 ありがとうござました 何かのきっかけやヒントになればうれしいです
45.
Copyright© 2017 All
rights reserved.45 エンジニア募集中! 求むエンジニア! ハンズラボは積極的に技術者採用中です。
Télécharger maintenant