๐ŸŒŸ Firebase: Security Rules ๋ฐ API Key Security ์ˆ˜์ •

summereuna๐Ÿฅยท2022๋…„ 9์›” 28์ผ

๐ŸŒŸ Twinkle (React, Firebase)

๋ชฉ๋ก ๋ณด๊ธฐ
42/42

Security Rules ์ˆ˜์ •

ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์ฝ˜์†” > ํŒŒ์ด์–ด์Šคํ† ์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํƒญ > ๊ทœ์น™ > ๊ทœ์น™ ์ˆ˜์ •

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
      }
  }
}

firestore ์•ˆ์— ์žˆ๋Š” databases์˜ ๋ชจ๋“  document์—์„œ ๋กœ๊ทธ์ธ์„ ํ–ˆ๋‹ค๋ฉด(request.auth != null) ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๊ทœ์น™์„ ์ˆ˜์ •ํ•˜์ž.
๊ทธ๋ž˜์•ผ ๋กœ๊ทธ์ธํ•ด์„œ ์‚ฌ์šฉ์ž๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ์˜ฌ ์ˆ˜ ์žˆ๊ณ , ๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •(์“ฐ๊ธฐ)ํ•  ์ˆ˜ ์žˆ๋‹ค.

API Key Security ์ˆ˜์ •

https://console.developers.google.com/apis/credentials์—์„œ API Key ๋ณด์•ˆ์„ ์ˆ˜์ •ํ•ด ์ฃผ์ž.

  1. ์ƒ๋‹จ์— ์ˆ˜์ •ํ•  ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ํƒญ์— ๋“ค์–ด๊ฐ„๋‹ค.

  2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œํ•œ์‚ฌํ•ญ์—์„œ HTTP ๋ฆฌํผ๋Ÿฌ(์›น์‚ฌ์ดํŠธ)๋ฅผ ์„ ํƒํ•œ๋‹ค.

  3. ์›น์‚ฌ์ดํŠธ ์ œํ•œ์‚ฌํ•ญ์— ๋‚ด ๋„๋ฉ”์ธ(summereuna.github.io/*)์„ ๋„ฃ๋Š”๋‹ค.
    ๋กœ์ปฌํ˜ธ์ŠคํŠธ์—์„œ๋„ ์‚ฌ์šฉํ•˜๊ธฐ ์›ํ•œ๋‹ค๋ฉด localhost๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค.

  4. ๊ทธ๋ฆฌ๊ณ  ๋ฐ˜๋“œ์‹œ ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์•ฑ์˜ ๋„๋ฉ”์ธ๋„ ์ถ”๊ฐ€ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์•ฑ์ด ๋กœ๊ทธ์ธ ๊ณผ์ • ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์ถ”๊ฐ€ํ•˜์ž!

    ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์•ฑ์˜ ๋„๋ฉ”์ธ์€ ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์ฝ˜์†” > ์ธ์ฆ > ์„ธํŒ… > ์Šน์ธ๋œ ๋„๋ฉ”์ธ์— ๋“ค์–ด๊ฐ€๋ฉด ์ ํ˜€์žˆ๋‹ค.

  5. ์ €์žฅ ๋ฒ„ํŠผ ํด๋ฆญ!

๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ ์ฒดํฌํ‘œ์‹œ๊ฐ€ ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ํ•œ URL๋งŒ API Key๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์ด ๋„๋ฉ”์ธ์—์„œ๋งŒ ์ธ์ฆ ๋™์ž‘์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

profile
Always have hope๐Ÿ€ & constant passion๐Ÿ”ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€