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

復号できなくなると怖いので、AWS KMSキーの削除を「面倒」にしてみた

復号できなくなると怖いので、AWS KMSキーの削除を「面倒」にしてみた

Cloud Operator Days Tokyo 2025
https://cloudopsdays.com/

Avatar for iwamot

iwamot PRO

July 21, 2025
Tweet

More Decks by iwamot

Other Decks in Technology

Transcript

  1. 特定のタグを付けると削除できる仕組みはどうか deletable = true タグが付いているキーのみ削除を許可 削除が拒否されたらSlackに通知 deletable = true タグが付いているか確認するよう促す

    (権限不足による拒否かもしれないため「付けろ」とまでは言わない) 削除が待機されてもSlackに通知 復号できなくなっても問題ないか、削除予定日時までに確認するよう促す
  2. Hubモジュール module "hub" { source = "..." sns_topic_arn = aws_sns_topic.this.arn

    } 拒否・待機イベントを検知するEventBridgeルールを作成 ルールのターゲットとして、指定のSNSトピックを設定 ターゲットにイベントを送信するIAMロールを作成 「SNS → Amazon Q Developer → Slack」には既存モジュールを利用
  3. Spokeモジュール module "spoke_us_east_1" { source = "..." providers = {

    aws = aws.us_east_1 } # サブリージョン hub_event_bus_arn = module.hub.event_bus.arn hub_iam_role_arn = module.hub.iam_role.arn hub_region_name = module.hub.region.name # メインリージョン } 拒否・待機イベントを検知するEventBridgeルールを作成(Hubと同じ) ルールのターゲットとして、Hubのイベントバスを設定 (SNSトピックを変えたくなっても、Hub側を直すだけで済む) ターゲットにイベントを送信するIAMロールとして、Hubのロールを流用 hub_region_name は、Hubと同じリージョンへのデプロイ防止に利用
  4. RCPモジュール module "rcp" { source = "..." target_ids = [

    local.accounts.prod.id ] } deletable = true タグ未設定のキー削除を禁じるRCPを作成 指定のAWSアカウント(あるいはOU)にアタッチ