Slide 1

Slide 1 text

S3からオブジェクトをCMKで暗号化して沼に ハマった話 Kento Suzuki 2022/08/24 (水) JAWS-UG 名古屋 LT未経験者にも登壇して貰いたいLT会

Slide 2

Slide 2 text

自己紹介 名前:鈴木健斗 (@k_suzuki_pnx) 所属:アイレット株式会社 経歴: ・東京都在住 ・新卒3年目(エンジニア歴 = 社会人歴) ・2022 APN ALL AWS Certifications Engineer ・2022 APN AWS Top Engineer

Slide 3

Slide 3 text

本題 ある日のこと、 特定のIAMでS3のオブジェクトをダウンロードしようとすると The ciphertext refers to a customer master key that does not exist, does not exist in this region, or you are not allowed to access. 訳)このリージョンに存在していない、   もしくはアクセス許可のないカスタマーマスターキー(CMK)で暗号化されています というエラーが発生

Slide 4

Slide 4 text

実際の構成 アクセス制限をしている箇所 ・IAMユーザ ・KMS ・S3

Slide 5

Slide 5 text

どこが原因か分からねぇーよ!!


Slide 6

Slide 6 text

1つずつポリシードキュメントを紐解く その後

Slide 7

Slide 7 text

犯人を特定

Slide 8

Slide 8 text

解説 IAMへの接続元IPを制限したい場合、 IAMポリシーへ「aws:SourceIp」を用いたCondition句を設定

Slide 9

Slide 9 text

ドキュメントにはこのような記載がある https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip

Slide 10

Slide 10 text

解決策 Condition句に "Null": {"kms:ViaService": "true"} を追加

Slide 11

Slide 11 text

図示するとこうなる

Slide 12

Slide 12 text

まとめ AWSの権限まわりは本当に沼 「aws:SourceIp」を用いたCondition句を使うときは要注意!