Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HashiCorp Japan Tech Update HashiDays 2023 Reca...

HashiCorp Japan Tech Update HashiDays 2023 Recap User Session

I talked about our experience in implementing TerraformCloud OPA.

hayata.shimizu

July 07, 2023
Tweet

Other Decks in Technology

Transcript

  1. 2022/04 - Now Money Forward, inc.
 サービス基盤本部インフラ部Platformグループ所属
 全社で利用されるサービス提供基盤の運用/開発。AWS 上で構築されたk8sを中心とした基盤
 自己紹介

    - 清水 速太 (Shimizu Hayata) 2017/04 - 2022/03 AP Communications Co., Ltd.
 NW/SVエンジニアとして勤務。
 物理NW機器の運用からキャリアを始め、運用自動化 /CICD/IaC/クラウドを経験
 2

  2. OPAとは Policy-based control for cloud native environments
 出典: Cloud Native

    Computing Foundation 
 汎用ポリシーエンジンとポリシー定義言語
 9

  3. OPAとは Policy as Code
 • Sandboxing
 • Codification
 • Version

    Control
 • Testing
 • Automation
 出典: HashiCorp https://docs.hashicorp.com/sentinel/concepts/policy-as-code
 10

  4. OPA導入契機 • AWS SecurityGroupでインシデント発生
 
 • AWS SGのQuota
 ◦ SGの設定可能なRule数の上限:

    60
 
 • SGのRule数上限を超えてApply
 ◦ AWS APIの制約上、SG削除->SG再作成が正常な動き 
 ◦ 再作成がクォータ上限で失敗 
 
 • SGにRuleが存在しない。サービス不通となる障害。
 SG障害 14
 概要
  5. OPA導入契機 • AWS SecurityGroupでインシデント発生
 
 • AWS SGのQuota
 ◦ SGの設定可能なRule数の上限:

    60
 
 • SGのRule数上限を超えてApply
 ◦ AWS APIの制約上、SG削除->SG再作成が正常な動き 
 ◦ 再作成がクォータ上限で失敗 
 
 • SGにRuleが存在しない。サービス不通となる障害。
 SG障害 15
 概要
  6. OPA導入契機 • AWS SecurityGroupでインシデント発生
 
 • AWS SGのQuota
 ◦ SGの設定可能なRule数の上限:

    60
 
 • SGのRule数上限を超えてApply
 ◦ AWS APIの制約上、SG削除->SG再作成が正常な動き 
 ◦ 再作成がクォータ上限で失敗 
 
 • SGにRuleが存在しない。サービス不通となる障害。
 SG障害 16
 概要
  7. OPA導入契機 • AWS SecurityGroupでインシデント発生
 
 • AWS SGのQuota
 ◦ SGの設定可能なRule数の上限:

    60
 
 • SGのRule数上限を超えてApply
 ◦ AWS APIの制約上、SG削除->SG再作成が正常な動き 
 ◦ 再作成がクォータ上限で失敗 
 
 • SGにRuleが存在しない。サービス不通となる障害。
 SG障害 17
 概要
  8. OPA導入契機 • AWS RDSでインシデント発生
 ◦ engine_version = x.y.z 
 ◦

    auto_minor_version_upgrade = true
 
 • AWSとTerraformでengine_versionに差分発生
 
 • 差分状態でApplyするとダウングレード
 ◦ ダウングレードはインスタンス削除 ->再作成
 ◦ データ不整合で再作成に失敗 
 
 • インスタンスが不在となり、障害。
 RDS障害 19
 ※要検証ですが修正されている可能性あり 概要
  9. OPA導入契機 • AWS RDSでインシデント発生
 ◦ engine_version = x.y.z 
 ◦

    auto_minor_version_upgrade = true
 
 • AWSとTerraformでengine_versionに差分発生
 
 • 差分状態でApplyするとダウングレード
 ◦ ダウングレードはインスタンス削除 ->再作成
 ◦ データ不整合で再作成に失敗 
 
 • インスタンスが不在となり、障害。
 RDS障害 20
 ※要検証ですが修正されている可能性あり 概要
  10. OPA導入契機 • AWS RDSでインシデント発生
 ◦ engine_version = x.y.z 
 ◦

    auto_minor_version_upgrade = true
 
 • AWSとTerraformでengine_versionに差分発生
 
 • 差分状態でApplyするとダウングレード
 ◦ ダウングレードはインスタンス削除 ->再作成
 ◦ データ不整合で再作成に失敗 
 
 • インスタンスが不在となり、障害。
 RDS障害 21
 ※要検証ですが修正されている可能性あり 概要
  11. OPA導入契機 • AWS RDSでインシデント発生
 ◦ engine_version = x.y.z 
 ◦

    auto_minor_version_upgrade = true
 
 • AWSとTerraformでengine_versionに差分発生
 
 • 差分状態でApplyするとダウングレード
 ◦ ダウングレードはインスタンス削除 ->再作成
 ◦ データ不整合で再作成に失敗 
 
 • インスタンスが不在となり、障害。
 RDS障害 22
 ※要検証ですが修正されている可能性あり 概要
  12. • 一時的なポリシー解除が難しい。
 ◦ whitelist方式でリソース名を追記し、解除する方式を採用 
 ◦ 本来の変更に加え、 whitelistの追加・削除の変更が必要で手間がかかる 
 •

    OPA設定がコード化されておらず、Adminが更新する必要がある。
 ◦ Terraform CloudではOPAの設定すらもコード化が可能。 (Policy as Code as Code)
 ◦ issueとして積まれているので早めに対応したい 
 • Policyに対するテストが組めていない
 ◦ Policy自体のtestをCIに組み込むことでより良い Policyを維持する
 課題に感じている点 39

  13. 46