Slide 1

Slide 1 text

       © Chatwork ガードレール運用 2023年8月31日 SRE部 佐々木真也 Chatwork株式会社 JAWS-UG 大阪 「AWS のセキュリティサービス&ソリューション座談会(仮)」

Slide 2

Slide 2 text

自己紹介 2 ● 名前 ○ 佐々木真也 ● 所属 ○ Chatwork株式会社 ■ 2020年6月〜 ■ SRE部 マネージャー ● Twitter ○ @taishin ● 趣味 ○ サッカー観戦

Slide 3

Slide 3 text

会社概要 3 会社名 Chatwork株式会社 代表取締役CEO 山本 正喜 グループ従業員数 411名(2023年6月末日時点) 所在地 東京、大阪 設立 2004年11月11日

Slide 4

Slide 4 text

事業概要 4 4 *1 Chatworkセグメント以外の事業として、ESET社提供のセキュリティ対策ソフトウェア「ESET」の代理販売事業を展開。安定的な収益貢献となっている *2 Nielsen NetView 及びNielsen Mobile NetView Customized Report 2022年5月度調べ月次利用者(MAU:Monthly Active User)調査。 調査対象はChatwork、Microsoft Teams、Slack、LINE WORKS、Skypeを含む47サービスをChatwork株式会社にて選定 *3 2023年6月末時点 ● 国内最大級のビジネスチャット「Chatwork」を中心に、複数の周辺サービスを展開*1 ● ビジネスチャットのパイオニアであり国内利用者数No.1*2、導入社数は41.0万社*3を突破 ● 電話やメールから効率的なチャットへ、ビジネスコミュニケーションの変化を加速させプラットフォーム化を目指す

Slide 5

Slide 5 text

ガードレール? Chatworkのガードレール運用 まとめ 2 3 AGENDA アジェンダ 1

Slide 6

Slide 6 text

ガードレール?

Slide 7

Slide 7 text

クラウドにおけるガードレールとは? 7 ● クラウド環境でセキュリティなどの統制を実現する方法、考え方 ● 利用者がセキュリティ上問題のある操作をしないよう検知・防止 する仕組み

Slide 8

Slide 8 text

従来のセキュリティ対策 8 ● ゲート ○ 特定のアクションや操作を実行する前に、認証や承認を必要とする 仕組み

Slide 9

Slide 9 text

ガードレール利用の背景 9 ● 利用者の増加 ● 組織としてガバナンス強化 ● マルチアカウント管理 ● 開発スピード

Slide 10

Slide 10 text

ガードレールの種類 10 ● 検知 ○ リスクがある構成や操作を検知し、止めるので はなく通知する ■ ex) パブリックアクセス可能なS3バケットを作成した後、通知 する ● 予防 ○ あらかじめしてはいけない操作を定義し、禁止 する ■ ex) パブリックアクセス可能なS3バケットを作成しようとした ときに、操作をブロックする ※ 修正を1つの種類として取り扱っているドキュメントもあります。

Slide 11

Slide 11 text

ガードレールといえば・・・ 11 ● AWS Control Tower ○ 複数のAWSサービスを組み合わせてマルチアカウントの統制を行う

Slide 12

Slide 12 text

Control Tower の機能 12 ● ランディングゾーン ○ セキュリティとコンプライアンスのベストプラクティスに基づく マルチアカウント管理 ● コントロール ○ AWS 環境全体に継続的なガバナンスを提供する高レベルのルール ○ ガードレールとも呼ばれる ● Account Factory ○ 新規アカウントのテンプレート ● ダッシュボード

Slide 13

Slide 13 text

Control Tower の必須コントロールの例 13 ● AWS Control Tower がログアーカイブに作成した Simple Storage Service (Amazon S3) バ ケットのログ設定の変更を許可しない ● AWS Control Tower によって設定された Amazon CloudWatch Logs ロググループへの変更 を不許可にする ● AWS Control Tower が作成した AWS Config 集約認証の削除を許可しない ● AWS Control Tower によって設定された Amazon CloudWatch への変更を不許可にする ● AWS Control Tower が作成した リソースのタグの変更を許可しない … ● 利用可能なすべてのリージョンで CloudTrail を有効にする ● CloudTrail への設定変更を不許可にする ● セキュリティ組織単位の共有アカウントで AWS CloudTrail または CloudTrail Lake が有効 になっているかどうかを検出する … ● 使用可能なすべてのリージョンで AWS Config を有効にする ● AWS Config への設定変更を許可しない https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/mandatory-controls.html

Slide 14

Slide 14 text

検知ガードレールを実現するAWSのサービス 14 ● AWS Config Rules ● Security Hub

Slide 15

Slide 15 text

AWS Config Rules 15 ● AWS リソースの設定内容を評価 ○ AWS Config マネージドルール ■ 事前定義されたカスタマイズ可能なルール ● https://docs.aws.amazon.com/config/latest/developerguide/managed- rules-by-aws-config.html ○ AWS Config カスタムルール ■ Lambda ■ CloudFormation Guard ■ RDK

Slide 16

Slide 16 text

AWS Security Hub 16 ● セキュリティのベストプラクティスのチェック ○ CIS AWS Foundations Benchmark、AWS 基礎セキュリティのベストプラクティス 等 ● 他のサービスのセキュリティアラートを集約

Slide 17

Slide 17 text

予防ガードレールを実現するAWSのサービス 17 ● サービスコントロールポリシー (SCP) ● IAM

Slide 18

Slide 18 text

サービスコントロールポリシー (SCP) 18 ● AWS Organizations における権限設定 ○ Organizations内のOU(Organizational Unit) や、AWSアカ ウントに対する権限を設定

Slide 19

Slide 19 text

Chatworkの予防ガードレール運用

Slide 20

Slide 20 text

Security Hub運用 20 Security Hub SNS Event Bridge

Slide 21

Slide 21 text

Security Hub運用 21 ● カスタムアクションの利用 ○ Jiraチケット作成や、通知に必要な情報は、検知するサービスごとに異なる ○ EventBridgeの入力トランスフォーマーで必要な情報を抽出

Slide 22

Slide 22 text

Security Hub運用 22 ● Security Hub Automation Rules による検出結果の更新 ○ 下記の情報等を自動更新 ■ ステータス変更 ■ アカウントの選定 ■ findingsごとに除外の選定 https://aws.amazon.com/jp/about-aws/whats-new/2023/06/aws-security-hub-automation-rules/

Slide 23

Slide 23 text

課題 23 ● システム担当者への通知 ○ 同じアカウント内に複数のシステムが構築されているので、タグをチェックする 等でシステムごとに通知先を分けたいが、タグの対応がないのでアカウントレベ ルでしか通知先を分けれない ● Custom Action の手動実行 ○ 現状の仕様だと過去に実行したものを再度実行してしまい、チケット、通知が重 複してしまうため ● Jiraチケットとの連携 ○ Security Hubでステータスを変更してもJiraでは変わらない ■ Atlassian Jira Service Management との双方向統合を検証中 ● https://aws.amazon.com/jp/about-aws/whats-new/2021/05/aws-security-hub -supports-bidirectional-integration-with-atlassian-jira-service-management/

Slide 24

Slide 24 text

Chatworkの検知ガードレール運用

Slide 25

Slide 25 text

SCPの運用 25 ○ 絶対に使わないものを拒否 ○ 最小限にしておく ■ 変更はOrganizationsに対する権限がないとできない ■ アカウント側で拒否されたときに問題がよく分からない { "Effect": "Deny", "Action": "*", "Resource": "*", "StringNotEquals": { "aws:RequestedRegion": [ "ap-northeast-1", "us-east-1", "us-east-2", "us-west-1", ... }, { "Effect": "Deny", "Action": [ "workspaces:*", "workspaces-web:*", "robomaker:*", "mediatailor:*", ... ● 例 ○ 不要なリージョンに対する操作 ○ 不要なサービスに対する操作 ○ 絶対に削除してはいけないS3バケット/オブ ジェクトの削除の拒否

Slide 26

Slide 26 text

予防ガードレールの運用 26 ● ガードレールをつくりたいポイント ○ Organizationレベル Organizationレベルのガードレール ● 組織管理者で設定 ● SCPを利用

Slide 27

Slide 27 text

予防ガードレールの運用 27 ● ガードレールをつくりたいポイント ○ Organizationレベル ○ アカウントレベル Organizationレベルのガードレール ● 組織管理者で設定 ● SCPを利用 アカウントレベルのガードレール ● アカウント管理者で設定

Slide 28

Slide 28 text

予防ガードレールの運用 28 ● ガードレールをつくりたいポイント ○ Organizationレベル ○ アカウントレベル ○ EKSクラスタレベル Organizationレベルのガードレール ● 組織管理者で設定 ● SCPを利用 アカウントレベルのガードレール ● アカウント管理者で設定 EKSクラスタレベルのガードレール ● クラスタ管理者で設定

Slide 29

Slide 29 text

アカウントレベルのガードレール 29 ● リソース作成時にブロック ○ terraformでのCI/CD作成時にブロック ■ Atlantis + OpenPolicyAgent/Conftest

Slide 30

Slide 30 text

Atlantis + Conftest 30 ● 権限設定次第ですが、エラーを承 認してapplyすることも可能 ● Terraformのplan結果をOPAの仕組みで検査 ● ポリシー違反であればapply不可 ○ エラーを承認してapplyすることも可能 ■ (緩さも必要かも・・・)

Slide 31

Slide 31 text

参考:tfsec 31 ● Terraformのコードをセキュリティのベストプラクティス に基づいてスキャンしてくれる ○ Github ActionsでCI/CDに組み込むことも可能 ○ ユーザー側で除外も可能 ■ (緩さも必要かも・・・) https://github.com/aquasecurity/tfsec

Slide 32

Slide 32 text

参考:AWS Config ルール プロアクティブモード ? 32 ● 期待していたものと違った・・・

Slide 33

Slide 33 text

EKSクラスタレベルのガードレール 33 ● EKSクラスタ内でGatekeeper + OpenPolicyAgent ○ コンテナイメージのタグのチェック ○ Adminロールのチェック ○ external-dnsホスト名のチェック https://aws-quickstart.github.io/cdk-eks-blueprints/addons/opa-gatekeeper/ https://archive.eksworkshop.com/intermediate/310_opa_gatekeeper/

Slide 34

Slide 34 text

詳細はこちらにも・・・ 34 ● https://speakerdeck.com/saramune/gabanansuxiang-shang-wei-yuan-hui-with-opa

Slide 35

Slide 35 text

まとめ

Slide 36

Slide 36 text

まとめ 36 ● ガードレールには検知と予防がある ● 検知ガードレールは通知運用が難しい ● 予防ガードレールはレイヤに応じてサービスを選択

Slide 37

Slide 37 text

働くをもっと楽しく、創造的に