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

よく考えずにRDSを暗号化したら辛かった話

 よく考えずにRDSを暗号化したら辛かった話

Manami Nakamura

October 12, 2022
Tweet

More Decks by Manami Nakamura

Other Decks in Programming

Transcript

  1. いざ、ステージングでリストア • 本番のスナップショット関連の権限をステージングで AssumeRoleする準備もできた...と思いきや • KMS周りのポリシーが足りなかった An error occurred (KMSKeyNotAccessibleFault)

    when calling the RestoreDBClusterFromSnapshot operation: The specified KMS key [arn:aws:kms:ap-northeast-1:1122334455:key/11111-22222-3333-44444-55555] does not exist, is not enabled or you do not have permissions to access it. Error: Process completed with exit code 254.
  2. いざ、新しいキーでDB再作成も... • RDSのterraform destroy ができない • 削除するとは思ってなかったので、 skip_final_snapshot = falseなのに

    final_snapshot_identifierを指定してなかった • skip_final_snapshotと final_snapshot_identifierはニコイチ
  3. その後、KMSキーの作成でハマる • ドキュメント通りに作ったかと思いきや... • “The new key policy will not

    allow you to update the key policy in the future” というエラー が出てキーが作れない Error: error creating KMS Key: MalformedPolicyDocumentException: The new key policy will not allow you to update the key policy in the future.
  4. KMSキーの作成でハマる • プリンシパルに指定したIAMがCreateKeyとPutKey 両方できる必要があるらしい キーポリシーが作成されると、AWS KMS はセーフティチェックを実行します。セーフティ チェックの 1 つが、キーポリシーのプリンシパルに

    CreateKey API と PutKeyPolicy API を実行するために必要な許可があることを確認します。このチェックは、KMS キーが管理 不能になる可能性を排除します。つまり、キーポリシーを変更したりキーを削除したりすること ができないという意味です。