color is クラウド LT 大会vol.2「大型アップデート祭り」の登壇資料です。
でVPN-less な世界を体験してみたcolor is クラウドLT大会 vol.2December 15th, 2022小杉 隼人 | Hayato Kosugi
View Slide
Me• Cloud Engineer @ セゾン情報システムズ• AWS Community Builder (Fall of 2020)• 2019 - 2022 APN AWS Top Engineers• 11x AWS Certified2@hayaok3 @hayao_k
• AWS Verified Access とは• AWS Verified Access のしくみ• 体験してみた3
• AWS re:Invent 2022 で発表された新サービス• VPN を使用せずに企業アプリケーションにセキュアなアクセスを提供する• AWS Zero Trust security principlesに基づいて設計されている• 10 リージョンで Preview 中だが、東京リージョンは未対応4AWS (AVA)
• データへのアクセスが NW の場所だけに基づいて行われるべきではないという考えを中心としたセキュリティモデル• 一般的には Identity を中心としたコントロールに置き換えられる• NW の場所への依存度は低下するが、NW 制御が不要という意味ではないWhat is ?5
How Works6ClientAWS Verified AccessVPCPrivate subnetCorp ApplicationAVA InstanceAVA GroupAVA Trust ProvidersDevice Trust ProviderJamf (macOS)CloudStrike (Windows10/11)User Trust ProviderAWS IAM Identity Center3rd Party IdP (OIDC)PolicyEndpoint1. クライアントがリクエストを送信2. 信頼プロバイダーからデータを取得ID, デバイスの場所, ステータスなど3. グループ/エンドポイントに設定されたポリシーを評価4. セキュリティ要件を満たしている場合にアプリケーションへのアクセスを許可
• アクセスポリシーを AVA で統一管理できる• リクエスト毎 にアクセス許可の判定を行う• ID, デバイスの場所, ステータスなどに基づき評価• すべてのアクセスをログに記録可能• S3/CloudWatch/Kinesis Firehose• Policy は Cedar で記述• AWS が開発したポリシー言語• Amazon Verified Permissions でも Cedar を採用How Works7ClientAWS Verified AccessVPCPrivate subnetCorp ApplicationAVA InstanceAVA GroupAVA Trust ProvidersDevice Trust ProviderJamf (macOS)CloudStrike (Windows10/11)User Trust ProviderAWS IAM Identity Center3rd Party IdP (OIDC)PolicyEndpoint
Syntax8permit( principal,action,Resource )when {context.device.location == “JP” &&context.authn == “MFA”};effectscopeconditionclause• effect• permit (許可) or forbid (拒否) を指定• scope• effect が適用される範囲を指定• AVA では使用されないため、常に未定義• condition clause• effect が適用される条件句を指定• ID と デバイスのデータをもとにアクセスを絞る// ドメインが example.com かつデバイスリスクが低とレポートされた場合にアクセスを許可permit(principal, action, resource) when {context.identity.email like “*@example.com” &&context.devise.risk == “Low”};// 管理者以外の POST リクエストを拒否forbid(principal, action, resource) when {context.http_request.http_method == "POST“ &&!(context.identity.roles.contains("Administrator"))};
たぶん時間がない9
10ClientAWS Verified AccessVPCPrivate subnetAVA InstanceAVA GroupAVA Trust ProvidersPolicyEndpoint Auth0// Policypermit(principal, action, resource) when {context.Auth0.email like “*@example.com”};実際には Endpoint に対するACM 証明書の設定やRoute 53 への CNAME レコード設定も必要@example.com@gmail.com
• AWS Verified Access の何が嬉しいのか• VPN を使用せずに企業アプリケーションにセキュアなアクセスを提供• ID やデバイス情報をもとにした柔軟なアクセス制御• アクセスポリシーの統一管理• 従来は VPN/Identity/Device の管理がバラバラに行われ煩雑だった• これからに期待するところ• 東京リージョンへの対応• 料金は1アプリあたり $200/月~ なのでそこそこする印象11
Go world!12
• Verified Access Instances• Trust Provider と Group を関連付けるためのリソース• Verified Access Endpoints• 接続先のアプリケーション (ALB/NLB/ENI) をアタッチ• Verified Access Groups• 同様のセキュリティ要件を持つエンドポイントをグループ化• Access Policies• アプリケーションへのアクセス可否を決定するためのルール• グループおよびエンドポイントに対し設定可能• Trust Providers• ユーザー ID またはデバイスのセキュリティ状態を管理するサービスHow Works13ClientAWS Verified AccessVPCPrivate subnetCorp ApplicationAVA InstanceAVA GroupAVA Trust ProvidersDevice Trust ProviderJamf (macOS)CloudStrike (Windows10/11)User Trust ProviderAWS IAM Identity Center3rd Party IdP (OIDC)PolicyEndpoint
• アプリが AVA に関連付けられた時間とデータ処理量に対する課金• 参考: バージニア北部• Per-app hours: $0.27/hr• Per-GB data processing: $0.02/GB• 1 つのアプリケーションが 100 GB 処理した場合• 730 * 0.27 + 100 * 0.02 = $199.1/月14
• AWS のゼロトラスト• https://aws.amazon.com/jp/security/zero-trust/• Introducing AWS Verified Access: Secure connections to your apps (NET214)• https://www.youtube.com/watch?v=Kkxn-bAIlnI• Leaping ahead: The power of cloud network innovation (NET211-L)• https://www.youtube.com/watch?v=aHClvCQfuPs15