Hashicorp Comminity Presentation Vault Introduction

Failed to join event Info Hashicorp Vault 自建金鑰管理最佳入坑姿勢 本次演講從導入 Hashicorp Vault 作為起點,直接提供實務上經驗,分享建議的設定與路上可能有的雷。 Vault 入坑的困難 Vault + Terraform 一入坑就 IaC mount path + role + policy 命名與管理 升級與維護 會依據企業需求提供實際用例 demo,當天提供 github code example 不會講太多非常基本介紹 vault 介紹 target group 聽眾建議要有 secret management 經驗,有使用 Kubernetes,三大公有雲者,Hashicorp Vault 基本使用經驗,希望導入到團隊內部 知道如何安全地且有系統的導入 Hashicorp Vault 自建私鑰管理系統,並避免踩到不必要的雷 10 tips for using vault choose your auth method public cloud iam auth k8s auth auth method 以外就無法 auth given k8s auth is by service account ...

May 10, 2023 · 1 min · 171 words · chechiachang

Terraform Github Action CI/CD

AWS cross account delegation 依舊 WIP,今天延續昨天內容,使用 github action 做 terraform module 的 CI/CD iThome 鐵人賽好讀版 賽後文章會整理放到個人的部落格上 http://chechia.net/ 追蹤粉專可以收到文章的主動推播 Terraform Github Action Jobs 我們可以在 terraform repository 中增加 tool checks 到 CI/CD 中,加強 code 的品質控管 terragrunt-infrastructure-modules PR 在此 這個 PR 包含幾個 Github Action Workflow ls .github/workflows checkov.yaml format.yaml plan.yaml security-scan.yaml validate.yaml format.yaml 中執行 terraform fmt -recursive,需求與目的已在昨天說明 validate.yaml 中執行 terraform validate,用來驗證 module 內的 terraform syntax 是否符合語法 checkov.yaml 是多語言的 policy as code 工具,在這邊執行掃描 terraform code 的安全性與 CVEs 檢查 security-scan.yaml 中也是 Policy As Code 使用 tfsec 工具掃描 plan.yaml 中在 pipeline 執行自動化 terraform plan 由於 plan 需要存取 state 與 provider API,設定上有許多權限設定需要開啟,目前是一個 dummy workflow policy as code 內容可以將一篇演講,有興趣請見底下投影片: 2022 DevOpsDay: Policy As Code for Terraform: https://docs.google.com/presentation/d/1yawazO1B_sP5Yiav-XLGJXW3ZS2JTV0wGuJwhrUKQ3A ...

September 25, 2022 · 2 min · 267 words · chechiachang

Aws Cross Account Delegation & pre-commit hook

TODO 與進度 root 中設定 IAM User aws cross account iam role delegation root account MFA policy (Optional) Cloudtrail (Optional) terraform aws config security 中設定 IAM User security 設定 password policy security 設定 MFA policy security 中設定 IAM Policy & Group dev 中設定 IAM role 允許 security assume dev IAM role iThome 鐵人賽好讀版 賽後文章會整理放到個人的部落格上 http://chechia.net/ 追蹤粉專可以收到文章的主動推播 AWS cross account with iam roles 要做跨 AWS account 的 IAM Roles access control,我們先看官方文件理解這個功能 ...

September 21, 2022 · 2 min · 390 words · chechiachang

Modules and password security

使用 aws module 的好處 為何許多開源的 terraform module 內部使用的都是其他的 module,而不是從 resource 單位開始? Terraform 官方文件,如何建立 module 如何建立一個 module 根據最常出現的使用情劇與需求 專注於業務的需求與抽象,雃後把實作(terraform resource) 在 module 中組合實作出來 module 也需要考慮 resource 之間的 architecture 也要考慮到觀禮是否方便?使用上是否安全? ex. 我們需求是產生一個 IAM User 正常的實作就是寫一個 resource.aws_iam_user 達成需求 更好的實作是:除了 iam_user 外,加上 一定會需要配權限,應搭配 iam_group + iam_policy pgp encrypt 讓資料更安全 password_policy 增加密碼安全 …等 比起單一一個 iam_user 思考的更全面,更接近最佳實踐 在這次的 Best Practice 追尋之旅中,我們會帶大家去看其他團隊所寫出的 terraform module 目前已經看了 aws 的 terraform module gruntwork 的 terraform module design (我們沒看到 private module,只是跟隨文件自己刻) 這些有多年企業解決方案經驗的團隊,寫出來的 terraform module 都會考量許多 security 方面的問題 這也是我們前十篇都在專注的方向 一般來說,一個好 module 會帶來很多好處 ...

September 21, 2022 · 4 min · 656 words · chechiachang

Reset Iam User Administrator

昨天處理完 Accounting 的 reset password,今天要來 reset root account Administrator 的權限 本日進度 root 中設定 IAM User 將手動產生的 Administrator 的 IAM User import terraform 中 補上 root account IAM Policy 補上 root account IAM Group reset root account IAM user login profile & pgp key iThome 鐵人賽好讀版 賽後文章會整理放到個人的部落格上 http://chechia.net/ 追蹤粉專可以收到文章的主動推播 Reset IAM root user Administrator Password 依照上面的步驟,我們確定可以正常登入,於是可以來可以新建 Administrator 的 login profile 由於 Administrator 會需要 access key,所以我們也把他設成 true # terragrunt.hcl users = { Administrator = { groups = ["full-access"] pgp_key = "keybase:chechiachang" create_login_profile = true create_access_keys = true }, Accounting = { groups = ["billing"] pgp_key = "keybase:chechiachang" create_login_profile = true create_access_keys = false # accounting always use web console, won't use access key } } 記得更改 module/output.tf,增加 secret key 的 output,而不要只留在 terraform state 裡面 ...

September 20, 2022 · 7 min · 1292 words · chechiachang