Azure-sdk-for-java: [๋ฒ„๊ทธ] azure-spring-boot-starter-keyvault-secrets ๊ตฌ์„ฑ์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ

์— ๋งŒ๋“  2020๋…„ 09์›” 17์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Azure/azure-sdk-for-java

๋ฒ„๊ทธ ์„ค๋ช…
azure-spring-boot-starter-keyvault-secrets ์ž˜๋ชป๋œ (๊ทธ๋ฆฌ๊ณ  ์ž˜๋ชป ๋ฌธ์„œํ™” ๋œ) ๊ตฌ์„ฑ ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์™ธ ๋˜๋Š” ์Šคํƒ ์ถ”์ 
๋น„ํ™œ์„ฑํ™” ๋œ ๋น„๋ฐ€์ด ํฌํ•จ ๋œ ํ‚ค ์ €์žฅ์†Œ๋กœ ์ด๊ฒƒ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์Œ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค.

  java.lang.IllegalStateException: Failed to load ApplicationContext

  Caused by: java.lang.IllegalStateException: Failed to configure KeyVault property source

  Caused by: com.azure.core.exception.ResourceModifiedException: Status code 403, "{"error":{"code":"Forbidden","message":"Operation get is not allowed on a disabled secret.","innererror":{"code":"SecretDisabled"}}}"

์žฌํ˜„ํ•˜๋ ค๋ฉด
๋™์ž‘์„ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„:

  • property.yaml (!) ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
    yaml azure: keyvault: allow: telemetry: false enabled: true uri: https://${KEYVAULT_NAME}.vault.azure.net/ client-id: ${AZURE_CLIENT_ID} client-key: ${KEYVAULT_CLIENT_SECRET:not-a-secret} tenant-id: ${AZURE_TENANT} secret: keys: test1
  • ํ™œ์„ฑํ™” ๋œ ์•”ํ˜ธ test1 ๋ฐ ๋น„ํ™œ์„ฑํ™” ๋œ ์•”ํ˜ธ test2 ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • https://dc.services.visualstudio.com/v2/track์„ ์œ„ํ•œ HTTP ํŠธ๋ž˜ํ”ฝ ์บก์ฒ˜
  • ๋‹จ์ˆœํžˆ ์ด๋Ÿฌํ•œ ์†์„ฑ์„ ๊ฐ€์ ธ์˜ค๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์•ฑ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

*์„ค์ •

  • ์šด์˜์ฒด์ œ : Linux
  • IDE : ์ธํ…”๋ฆฌ์ œ์ด
  • azure-spring-boot-starter-keyvault-secrets 2.3.3

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™
2.2.X์™€ ์œ ์‚ฌํ•œ ๋™์ž‘(๋ฌธ์„œํ™”๋จ):

azure.keyvault.secret.keys ๋Š” ํŠน์ • ๋น„๋ฐ€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ์ด ์†์„ฑ์ด ์„ค์ •๋œ ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์†์„ฑ์˜ ํ‚ค๋งŒ๋กœ๋“œํ•˜๊ณ  keyvault์—์„œ ๋ชจ๋“  ํ‚ค๋ฅผ๋กœ๋“œํ•˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

[...]

์ฐธ์—ฌํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด application.properties์—์„œ ์•„๋ž˜ ๊ตฌ์„ฑ์„ ์„ค์ •ํ•˜์—ฌ ๋น„ํ™œ์„ฑํ™”ํ•˜์‹ญ์‹œ์˜ค.

azure.keyvault.allow.telemetry=false

โ†’ test1 ๋งŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์›๊ฒฉ ๋ถ„์„์ด ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ

์ •๋ณด ์ฒดํฌ๋ฆฌ์ŠคํŠธ
์œ„์˜ ๋‹ค์Œ ์ •๋ณด๋ฅผ ๋ชจ๋‘ ์ถ”๊ฐ€ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ํ•„์ˆ˜ ํ•„๋“œ๋ฅผ ์„ ํƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฐœํ–‰์ž๋ฅผ ๋ถˆ์™„์ „ํ•œ ๋ณด๊ณ ์„œ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.

  • [x] ๋ฒ„๊ทธ ์„ค๋ช… ์ถ”๊ฐ€
  • [x] ์žฌํ˜„ ๋‹จ๊ณ„ ์ถ”๊ฐ€๋จ
  • [x] ์„ค์น˜ ์ •๋ณด ์ถ”๊ฐ€
azure-spring azure-spring-keyvault customer-reported question

๋ชจ๋“  3 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š”, @frank-fischer-by ์ž…๋‹ˆ๋‹ค.

๋ฌธ์˜ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

IMU, secret-keys ๊ฐ€ secret.keys ๋ณด๋‹ค ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. allow-telemetry ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
๋ณ€๊ฒฝ์„ ๊นจ์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์€ ๋ฌธ์„œ์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์„œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด PR ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @chenrujun ์ž…๋‹ˆ๋‹ค .
์—…๋ฐ์ดํŠธ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์–ด๋Š ์ชฝ์ด๋“  ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค-๋‚˜๋Š” ๋‹จ์ง€ ๋ถˆ์ผ์น˜์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•˜์œผ๋ฏ€๋กœ ๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น ๋ฅด๊ฒŒ ๋Œ€์‘ํ•ด์ฃผ์‹œ๊ณ  ์กฐ์น˜ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค๐Ÿ‘.

PR ๋ฆฌ๊ทธ ๋ ˆ์ด๋“œ : Changelog ์—์„œ ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€๋ฅผ ๋ถ€๋ฅด๋Š” ๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์„ ํ”ผํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, @frank-fischer-by ์ž…๋‹ˆ๋‹ค.

Changelog์—์„œ ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€๋ฅผ ๋ถ€๋ฅด๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์„ ํ”ผํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ง์ด ๋˜๋„ค์š”. ์ œ์•ˆ ํ•ด ์ฃผ์…”์„œ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ™‡

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰