[AWS DevDay] Cognito / Amplify で加速するエンタープライズのアプリケーション開発

5.9K Views

October 20, 20

スライド概要

2020年10月20日(火)~22日(木) オンラインにて開催された
AWS DevDay Online JapanのDay1で発表した資料です。

profile-image

経済ニュースアプリのSREの仕事をしています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Session B-2 Cognito/Amplify で加速する エンタープライズのアプリケーション開発 安藤 裕紀 プラットフォームアーキテクト NRIデジタル株式会社 In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

2.

自己紹介 安藤 裕紀(あんどう ゆうき) • NRIデジタル プラットフォームアーキテクト (2011年 野村総合研究所入社、2017年 NRIデジタル出向) • Webシステムのサーバ構築・運用を中心としたインフラエンジニア として流通・金融・製造など複数業種の技術支援を経験 • ここ最近は、AWS上に構築されたECサイトや会員サービスの 開発運用を効率化すべくSRE / DevOpsエンジニア寄りの業務に従事 • 2020 APN AWS Top Engineers選出 © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

3.

本日お話しすること(セッション概要より) エンタープライズの新サービスを開発する際、企業はグループ内の複数のサービスを 横断した顧客体験の向上とデータ活用によってビジネスの価値を高めようとします。 そこで必要になるのが、エンドユーザの認証の統合とサービスごとの認可の制御です。 Cognito/Amplifyは新サービスを開発する際に認証機能を素早く実装する手段として知 られていますが、IDaaSと連携した認証とサービスに必要な認可の機能を実装するため に利用することで、エンタープライズが求める認証・認可を素早く実現するノウハウ をお伝えします。 © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

4.

アジェンダ • NRIデジタルについて • エンタープライズに認証・認可が求められる背景 • アプリケーション開発を加速するためのAWSマネージドサービス活用 • まとめ © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

5.

In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

6.

多様なプロフェッショナルが集結 野村総合研究所(NRI)グループの デジタルビジネス専門の戦略子会社 NRIグループ内外から組織の壁を超えて 集結した多様なプロフェッショナルが ”ワンチーム”で、お客様と共に デジタルによるビジネス変革を推進 Copyright (C) NRI digital, Ltd. All rights reserved. 新たなテクノロジー領域への挑戦 価値共創型のビジネス創出 6

7.

多くの企業が、ビジネス環境の激しい変化に対応するため、 テクノロジーを活用したビジネスの変革(DX)に取り組んでいる オンライン会員サービス 顧客接点のDX デジタルマーケティング 対面接客 ECサイト・ショッピングアプリ 販売手段のDX 店頭販売 Copyright (C) NRI digital, Ltd. All rights reserved. 定額制 サブスクリプションサービス 7

8.

NRIデジタルはお客様のビジネス変革の全てのフェーズに関わり、 多様な専門性を持つプロフェッショナルが協力してDXを推進している ビジネスデザイナー (専門性の例) • ビジネスコンサルタント • システムコンサルタント • サービスデザイナー • UI/UXデザイナー 構想・企画 デザイン・ 事業運営 設計 お客様 可視化・ 開発 フィードバック プラットフォームアーキテクト (専門性の例) • アーキテクト • インフラエンジニア • データサイエンティスト • データエンジニア Copyright (C) NRI digital, Ltd. All rights reserved. データ収集・ テスト データ分析 モニタリング リリース アプリケーションデベロッパー (専門性の例) • プロジェクトマネージャー • システムエンジニア • スクラムマスター • スクラムデベロッパー 8

9.

In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

10.

エンタープライズ(大企業) © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

11.

ビジネスを変革するための経営トップの意思決定 DXやるぞ! © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

12.

各事業会社の各部門で新サービスを検討 DXやるぞ! やるぞ! やるぞ! やるぞ! © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

13.

Web、モバイル、IoTなど新サービスが続々と開始 © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

14.

グループ横断のデータ活用により顧客体験を向上したい グループの シナジーを 発揮するぞ! © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

15.

グループ横断のデータ活用により顧客体験を向上したい グループの シナジーを 発揮するぞ! © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

16.

顧客IDを統合するために ******** 同じ顧客IDで 紐付けたい © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

17.

サービス側で認証連携と認可機能を実装する必要がある ******** 同じ顧客IDで 紐付けたい 認証連携・認可機能を実装 © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

18.

認証・認可とは? • 認証 (AuthN , Authentication) • 相手が誰であるかを確認すること 例)ログインによる本人確認 • 認可 (AuthZ , Authorization) • 誰かに許可を与えること 例)ログイン済みユーザにAPIへのアクセスを許可 © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

19.

認証・認可とは? OpenID Connect Authorization Code Flow Relying Party • 認証 (AuthN , Authentication) • 相手が誰であるかを確認すること OpenID Provider Initiate Request Authorization(Redirect) 例)ログインによる本人確認 Authentication & Authorization Authorization Code(Redirect) • 認可 (AuthZ , Authorization) Authorization Code Access Token + ID Token • 誰かに許可を与えること 例)ログイン済みユーザにAPIへのアクセスを許可 UserInfo API User ID etc. 参考: http://openid-foundation-japan.github.io/openid-connect-basic-1_0.ja.html © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

20.

In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

21.

エンタープライズとサービス開発の要件を両立する • エンタープライズの要件 • サービス開発の要件 • 共通の認証基盤・分析基盤を利用する • グループ横断のデータ活用 • 共通のセキュリティ・ガバナンス • 開発アジリティ • グループ内他サービスとユーザ情報連携 • 他サービスの個別属性を連携する • ランニングコストの変動費化 • ユーザー数を明確に想定できないため、 例)会員ランク・住所など • バッチによるファイルインターフェース • サービス開発の実験と反復を繰り返し、 顧客により良い体験を提供したい ランニングコストが最初から固定費に なるのは避けたい • 運用の手離れの良さ • 開発チームは他のサービスの開発にも 着手するため、ビジネスの差別化に 直結しない運用からは手離れしたい © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

22.

アプリケーション開発を加速するための基本方針 • AWSのマネージドサービスを活用する • アプリケーションで実装する機能の一部をマネージドサービスで実現 • 車輪の再発明がなくなる→コード量が減る→ビジネスロジックの開発に注力 例)認証・認可の機能をCognito/Amplifyで実装 • バックエンドの機能をサーバーレスで開発 • サーバーの運用管理がなくなる→インフラ運用がなくなり、コストは変動費に • キャパシティ不足による機会損失やセキュリティリスクを最小化 • フロントエンド開発にリソースを集中する • WebアプリはSingle Page Application(SPA)で開発する • リッチで操作性の高いUIを提供しやすい • フロントエンド(UI)とバックエンド(API)で開発者の関心事を分離できる • モバイルアプリ向けAPIにバックエンドの流用が可能 © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

23.

本セッションの主役はこちら Amazon Cognito AWS Amplify Webアプリ、モバイルアプリのための シンプルでセキュアな認証・認可を提供 Webアプリ、モバイルアプリの作成、設定、 実装を加速するツールとサービスのセット © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

24.

本セッションの主役はこちら Amazon Cognito AWS Amplify Webアプリ、モバイルアプリのための シンプルでセキュアな認証・認可を提供 • • • ユーザープール アプリへのアクセスに利用できるトークンを提供 IDプール AWSにアクセスできるクレデンシャルを提供 Cognito Sync モバイルアプリとクラウド間のデータ同期を実現 Webアプリ、モバイルアプリの作成、設定、 実装を加速するツールとサービスのセット • • • Amplify Framework AWSのサービスで構築したバックエンドに直感的 なインターフェースで接続できるライブラリ Amplify CLI AWSのサーバーレスなバックエンドを コマンドラインで構築・管理するCLIツール Amplify Console GitベースのSPAや静的サイトのCI/CDパイプライン を提供する静的Webホスティングサービス © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

25.

ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング Client Single Page Application Cognito API Gateway Lambda DynamoDB Authorization Code Flow S3 Glue Amazon S3 Amazon CloudFront 共通認証基盤(OpenID Connect Provider) 基幹システム/他サービスなど ユーザ属性 共通属性 Redirect ユーザ認証 Redirect AWS Cloud 認可コード取得 トークン取得 トークン・属性取得 ファイルインターフェース API Services Amazon Cognito • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー Amazon S3 ユーザ情報DB AWS Glue APIアクセス UI表示 Batch Services Cognitoユーザープール Redirect ユーザ属性取得 バックエンド(Batch) HTML取得 OpenID Connect 認証 サインイン開始 バックエンド(API) AWS Cloud (静的サイトホスティング用) Amazon API Gateway AWS Lambda Amazon DynamoDB © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

26.

ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング サービス開発側の実装範囲 Client フロントエンド(UI) Single Page Application OpenID Connect 認証 Authorization Code Flow サインイン開始 バックエンド(API) Cognito API Gateway Lambda DynamoDB Redirect S3 Glue HTML取得 Amazon S3 Amazon CloudFront 共通認証基盤(OpenID Connect Provider) 共通認証基盤 共通属性 基幹システム/他サービスなど 他システム ユーザ属性 ユーザ認証 Redirect AWS Cloud 認可コード取得 トークン取得 トークン・属性取得 ファイルインターフェース API Services Amazon Cognito • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 Amazon S3 バック エンド (Batch) バックエンド(API) COGNITO_USER_POOLS オーソライザー ユーザ情報DB AWS Glue APIアクセス UI表示 Batch Services Cognitoユーザープール Redirect ユーザ属性取得 バックエンド(Batch) AWS Cloud (静的サイトホスティング用) Amazon API Gateway AWS Lambda Amazon DynamoDB © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

27.

ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング Client Single Page Application Cognito API Gateway Lambda DynamoDB Authorization Code Flow S3 Glue Amazon S3 Amazon CloudFront 共通認証基盤(OpenID Connect Provider) 基幹システム/他サービスなど ユーザ属性 共通属性 Redirect ユーザ認証 Redirect AWS Cloud 認可コード取得 トークン取得 トークン・属性取得 ファイルインターフェース API Services Amazon Cognito • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー Amazon S3 ユーザ情報DB AWS Glue APIアクセス UI表示 Batch Services Cognitoユーザープール Redirect ユーザ属性取得 バックエンド(Batch) HTML取得 OpenID Connect 認証 サインイン開始 バックエンド(API) AWS Cloud (静的サイトホスティング用) Amazon API Gateway AWS Lambda Amazon DynamoDB © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

28.

ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング Client Single Page Application Cognito API Gateway Lambda DynamoDB Authorization Code Flow S3 Glue Amazon S3 Amazon CloudFront 共通認証基盤(OpenID Connect Provider) 基幹システム/他サービスなど ユーザ属性 共通属性 Redirect ユーザ認証 Redirect AWS Cloud 認可コード取得 トークン取得 トークン・属性取得 ファイルインターフェース API Services Amazon Cognito • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー Amazon S3 ユーザ情報DB AWS Glue APIアクセス UI表示 Batch Services Cognitoユーザープール Redirect ユーザ属性取得 バックエンド(Batch) HTML取得 OpenID Connect 認証 サインイン開始 バックエンド(API) AWS Cloud (静的サイトホスティング用) Amazon API Gateway AWS Lambda Amazon DynamoDB © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

29.

ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング Client Single Page Application Cognito API Gateway Lambda DynamoDB Authorization Code Flow S3 Glue Amazon S3 Amazon CloudFront 共通認証基盤(OpenID Connect Provider) 基幹システム/他サービスなど ユーザ属性 共通属性 Redirect ユーザ認証 Redirect AWS Cloud 認可コード取得 トークン取得 トークン・属性取得 ファイルインターフェース API Services Amazon Cognito • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー Amazon S3 ユーザ情報DB AWS Glue APIアクセス UI表示 Batch Services Cognitoユーザープール Redirect ユーザ属性取得 バックエンド(Batch) HTML取得 OpenID Connect 認証 サインイン開始 バックエンド(API) AWS Cloud (静的サイトホスティング用) Amazon API Gateway AWS Lambda Amazon DynamoDB © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

30.

ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング Client Single Page Application Cognito API Gateway Lambda DynamoDB Authorization Code Flow S3 Glue Amazon S3 Amazon CloudFront 共通認証基盤(OpenID Connect Provider) 基幹システム/他サービスなど ユーザ属性 共通属性 Redirect ユーザ認証 Redirect AWS Cloud 認可コード取得 トークン取得 トークン・属性取得 ファイルインターフェース API Services Amazon Cognito • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー Amazon S3 ユーザ情報DB AWS Glue APIアクセス UI表示 Batch Services Cognitoユーザープール Redirect ユーザ属性取得 バックエンド(Batch) HTML取得 OpenID Connect 認証 サインイン開始 バックエンド(API) AWS Cloud (静的サイトホスティング用) Amazon API Gateway AWS Lambda Amazon DynamoDB © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

31.

ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング Client Single Page Application OpenID Connect 認証 Authorization Code Flow サインイン開始 バックエンド(API) Cognito API Gateway Lambda DynamoDB Redirect S3 Glue HTML取得 Amazon CloudFront Amazon S3 OpenID ConnectのInitiateリクエスト 共通認証基盤(OpenID Connect Provider) 基幹システム/他サービスなど https://XXXXXXXXXXX.auth.ap-northeast-1.amazoncognito.com/oauth2/authorize?redirect_uri=http%3A%2F%2 Flocalhost%3A3000%2F&response_type=code&client_id=7o8ves8p5rq6q6o7i0mise4mbo&identity_provider=Id ユーザ属性 共通属性 P&scope=email%20openid%20profile%20aws.cognito.signin.user.admin&state=NQNc0Lpkc2GCM8rxQj1ECYsio 4FIoUoe&code_challenge=FvgiKIf8J4lbTd42Pj-CNF5ykPZaAqZICTO4Q3EY8xc&code_challenge_method=S256 ユーザ認証 Redirect 認可コード取得 Redirect トークン取得 ユーザ属性取得 バックエンド(Batch) AWS Cloud (静的サイトホスティング用) APIアクセス UI表示 AWS Cloud トークン・属性取得 ファイルインターフェース CSRF対策 Batch Services API Services Amazon Cognito 戻ってきたリダイレクトのクエリ文字列に同じstateパラメータが設定されていること ?code=e0e91d0a-66a5-45cf-9afd-77117e3e26f0&state=NQNc0Lpkc2GCM8rxQj1ECYsio4FIoUoe Cognitoユーザープール • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 Code Exchange (RFC Amazon S3 PKCE:Proof Key for 7636) 認可コード横取り対策 トークンエンドポイントを呼び出したクライアントが、ハッシュ化前のcode_challenge の値(code_verifier)を含めてアクセスしていること COGNITO_USER_POOLS code_verifier: 1U2UYEWnf3OYaSBKJQltCQ8S4fQb5XZBcWA2YoVRiN5e8I5Sk3yWyIJuiR58J5Ncdbs1YACHWKUYER オーソライザー ユーザ情報DB m81UzYy7nEEpCRPqxUsDCr5jGnA4cfC9Y5eJCfzVD85D1cTxTE AWS Glue Amazon API Gateway AWS Lambda Amazon DynamoDB © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

32.

ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング Client Single Page Application Cognito API Gateway Lambda DynamoDB Authorization Code Flow S3 Glue Amazon S3 Amazon CloudFront 共通認証基盤(OpenID Connect Provider) 基幹システム/他サービスなど ユーザ属性 共通属性 Redirect ユーザ認証 Redirect AWS Cloud 認可コード取得 トークン取得 トークン・属性取得 ファイルインターフェース API Services Amazon Cognito • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー Amazon S3 ユーザ情報DB AWS Glue APIアクセス UI表示 Batch Services Cognitoユーザープール Redirect ユーザ属性取得 バックエンド(Batch) HTML取得 OpenID Connect 認証 サインイン開始 バックエンド(API) AWS Cloud (静的サイトホスティング用) Amazon API Gateway AWS Lambda Amazon DynamoDB © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

33.

ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング Client Single Page Application OpenID Connect 認証 Authorization Code Flow サインイン開始 バックエンド(API) Cognito API Gateway Lambda DynamoDB S3 Glue HTML取得 Amazon S3 Amazon CloudFront (静的サイトホスティング用) 共通認証基盤(OpenID Connect Provider) 基幹システム/他サービスなど ユーザ属性 共通属性 Redirect ユーザ認証 Redirect AWS Cloud 認可コード取得 IDトークン・アクセストークン・属性取得 ファイルインターフェース Amazon Cognito Redirect Cognitoユーザプール Amazon S3 • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 トークン取得 ユーザ属性取得 バックエンド(Batch) AWS Cloud AWS Glue COGNITO_USER_POOLS オーソライザー ユーザ情報DB APIアクセス Amazon API Gateway AWS Lambda Amazon DynamoDB © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-enable-cognito-user-pool.html

34.

ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング Client Single Page Application Cognito API Gateway Lambda DynamoDB Authorization Code Flow S3 Glue Amazon S3 Amazon CloudFront 共通認証基盤(OpenID Connect Provider) 基幹システム/他サービスなど ユーザ属性 共通属性 Redirect ユーザ認証 Redirect 認可コード取得 Redirect トークン取得 ユーザ属性取得 バックエンド(Batch) HTML取得 OpenID Connect 認証 サインイン開始 バックエンド(API) AWS Cloud (静的サイトホスティング用) AWS Cloud トークン・属性取得 Amazon Cognito ファイルインターフェース API Services Batch Services Cognitoユーザープール • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー 更新頻度が少なく※利用頻度の多い属性を、Cognitoの APIアクセス カスタム属性に反映することで、フロントエンド・ バックエンドのアプリケーションで扱いやすくなるた Amazon API AWS Lambda Gateway め、一部をカスタム属性としてboto3で登録 UI表示 Amazon S3 ユーザ情報DB AWS Glue Amazon DynamoDB ※更新頻度が多い属性をユーザープール属性とするのは推奨されていない © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/user-pool-settings-attributes.html In Partnership with

35.

エンタープライズとサービス開発の要件を両立する • エンタープライズの要件 • サービス開発の要件 • 共通の認証基盤・分析基盤を利用する • グループ横断のデータ活用 • 共通のセキュリティ・ガバナンス • 開発アジリティ • グループ内他サービスとユーザ情報連携 • 他サービスの個別属性を連携する • ランニングコストの変動費化 • ユーザー数を明確に想定できないため、 例)会員ランク・住所など • バッチによるファイルインターフェース • サービス開発の実験と反復を繰り返し、 顧客により良い体験を提供したい ランニングコストが最初から固定費に なるのは避けたい • 運用の手離れの良さ • 開発チームは他のサービスの開発にも 着手するため、ビジネスの差別化に 直結しない運用からは手離れしたい © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

36.

In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

37.

本日お話ししたかったこと • エンタープライズで新サービス開発をする際、認証やデータの連携は 避けて通れない課題となり、開発アジリティとのトレードオフが発生 • Cognito/Amplifyは、独自のユーザ認証・ユーザ管理を実現するためだけ でなく、OpenID Connect Providerと認証連携可能なアプリケーションを 素早く実装するために活用できる • マネージドサービスやサーバーレスは開発・運用コストの削減効果が 大きいが、エンタープライズに求められる要件を充足するどうかは、 “信頼しつつも検証すべき” © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with

38.

/ エンタープライズの認証・認可要件を 素早く実現するために、Cognitoや Amplifyを活用してアプリケーションの 開発を加速させましょう \ In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

39.

ご清聴ありがとうございました! 安藤 裕紀 [email protected] In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

40.

20-22.10.2020 In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.