์ด ๋ฌธ์์์๋ Container Scanning API๋ฅผ ์ฌ์ฉ ์ค์ ํ๊ณ , ์ด๋ฏธ์ง๋ฅผ Artifact Registry์ ํธ์ํ๊ณ , ์ด๋ฏธ์ง์์ ๋ฐ๊ฒฌ๋ ์ทจ์ฝ์ ๋ชฉ๋ก์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
Artifact Analysis๋ Artifact Registry์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ๋ํ ์ทจ์ฝ์ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฉํ๋ฐ์ดํฐ๋ ๋ฉ๋ชจ๋ก ์ ์ฅ๋ฉ๋๋ค. ์ด๋ฏธ์ง์ ์ฐ๊ฒฐ๋ ๋ฉ๋ชจ์ ๊ฐ ์ธ์คํด์ค์ ๋ํ ์ด์ปค๋ฐ์ค๊ฐ ์์ฑ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ฐ์ ๋ฐ ๊ฐ๊ฒฉ ์ฑ ์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ด API๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ฉด Artifact Registry์์ ์ธ์ด ํจํค์ง ์ค์บ๋ ์ฌ์ฉ ์ค์ ๋ฉ๋๋ค. ์ง์๋๋ ํจํค์ง ์ ํ์ ์ฐธ๊ณ ํ์ธ์.
์์ํ๊ธฐ ์ ์
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry and Container Scanning APIs.
-
Install the Google Cloud CLI.
-
์ธ๋ถ ID ๊ณต๊ธ์ ์ฒด(IdP)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋จผ์ ์ ํด ID๋ก gcloud CLI์ ๋ก๊ทธ์ธํด์ผ ํฉ๋๋ค.
-
gcloud CLI๋ฅผ ์ด๊ธฐํํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry and Container Scanning APIs.
-
Install the Google Cloud CLI.
-
์ธ๋ถ ID ๊ณต๊ธ์ ์ฒด(IdP)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋จผ์ ์ ํด ID๋ก gcloud CLI์ ๋ก๊ทธ์ธํด์ผ ํฉ๋๋ค.
-
gcloud CLI๋ฅผ ์ด๊ธฐํํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud init
- Artifact Registry์ Docker ์ ์ฅ์๋ฅผ ๋ง๋ค๊ณ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅ์์ ํธ์ํฉ๋๋ค. Artifact Registry์ ์ต์ํ์ง ์์ผ๋ฉด Docker ๋น ๋ฅธ ์์์ ์ฐธ๊ณ ํ์ธ์.
์ ์ฅ์ ๋ชฉ๋ก์ ๊ฐ์ ธ์ต๋๋ค.
์ ์ฅ์ ๋ชฉ๋ก์์ ์ ์ฅ์๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ด๋ฏธ์ง ๋ชฉ๋ก์์ ์ด๋ฏธ์ง ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
๊ฐ ์ด๋ฏธ์ง ๋ค์ด์ ์คํธ์ ์ทจ์ฝ์ ํฉ๊ณ๊ฐ ์ทจ์ฝ์ ์ด์ ํ์๋ฉ๋๋ค.
์ด๋ฏธ์ง์ ์ทจ์ฝ์ ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด ์ทจ์ฝ์ ์ด์ ์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ธ์.
์ค์บ ๊ฒฐ๊ณผ ์น์ ์๋ ์ค์บ๋ ํจํค์ง ์ ํ, ์ด ์ทจ์ฝ์ , ์์ ์ฌํญ์ด ์๋ ์ทจ์ฝ์ , ์์ ์ฌํญ์ด ์๋ ์ทจ์ฝ์ , ํจ๊ณผ์ ์ธ ์ฌ๊ฐ๋์ ์์ฝ์ด ํ์๋ฉ๋๋ค.
์ทจ์ฝ์ ํ์๋ ๋ฐ๊ฒฌ๋ ๊ฐ ์ทจ์ฝ์ ์ ๊ณตํต ์ทจ์ฝ์ ๋ฐ ๋ ธ์ถ(CVE) ์ด๋ฆ, ์ค์ ์ฌ๊ฐ๋, ๊ณตํต ์ทจ์ฝ์ ์ ์ ์ฒด๊ณ (CVSS) ์ ์, ์์ ์ฌํญ (์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ), ์ทจ์ฝ์ ์ด ํฌํจ๋ ํจํค์ง์ ์ด๋ฆ, ํจํค์ง ์ ํ์ด ๋์ด๋ฉ๋๋ค.
์ด๋ฌํ ํ์ผ์ ํํฐ๋งํ๊ณ ์ ๋ ฌํ์ฌ ํน์ ํ์ผ, ๋๋ ํฐ๋ฆฌ ๋๋ ํ์ผ ํ์ฅ์๋ณ ํ์ผ ์ ํ์ ํ์ธํ ์ ์์ต๋๋ค.
Google Cloud ์ฝ์์๋ ์ด ํ์ ์ต๋ 1,200๊ฐ์ ์ทจ์ฝ์ ์ด ํ์๋ฉ๋๋ค. ์ด๋ฏธ์ง์ ์ทจ์ฝ์ ์ด 1, 200๊ฐ๋ฅผ ์ด๊ณผํ๋ ๊ฒฝ์ฐ gcloud ๋๋ API๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒด ๋ชฉ๋ก์ ํ์ธํด์ผ ํฉ๋๋ค.
ํน์ CVE์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ณด๋ ค๋ฉด CVE ์ด๋ฆ์ ํด๋ฆญํ์ธ์.
๋ฒ์ ๋ฒํธ ๋ฐ ์ํฅ์ ๋ฐ๋ ์์น์ ๊ฐ์ ์ทจ์ฝ์ ๋ฐ์ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ์ทจ์ฝ์ ์ด๋ฆ์ด ์๋ ํ์์ ๋ณด๊ธฐ ๋๋ ํด๊ฒฐ๋ ํญ๋ชฉ ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ์์ ์ด ์ ์ฉ๋์ง ์์ ์ทจ์ฝ์ ์ ๊ฒฝ์ฐ ๋งํฌ ํ ์คํธ๋ ๋ณด๊ธฐ์ด๊ณ ์์ ์ด ์ ์ฉ๋ ์ทจ์ฝ์ ์ ๊ฒฝ์ฐ ์์ ๋จ ๋ณด๊ธฐ์ ๋๋ค.
- LOCATION์ ์ ์ฅ์์ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ ์์น์ ๋๋ค.
- PROJECT_ID๋ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.
- REPOSITORY๋ ์ด๋ฏธ์ง๊ฐ ์ ์ฅ๋ ์ ์ฅ์์ ์ด๋ฆ์ ๋๋ค.
IMAGE_ID๋ ์ ์ฅ์์ ์ด๋ฏธ์ง ์ด๋ฆ์ ๋๋ค. ์ด ๋ช ๋ น์ด๋ก ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ง์ ํ ์๋ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ด ๋ช ๋ น์ด๋ ์ต์ ์ด๋ฏธ์ง 10๊ฐ๋ฅผ ๋ฐํํฉ๋๋ค. ๋ค๋ฅธ ์์ ์ด๋ฏธ์ง๋ฅผ ํ์ํ๋ ค๋ฉด
--show-occurrences-from
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ ๋ช ๋ น์ด๋ ๊ฐ์ฅ ์ต๊ทผ ์ด๋ฏธ์ง 25๊ฐ๋ฅผ ๋ฐํํฉ๋๋ค.gcloud artifacts docker images list --show-occurrences-from=25 \ us-central1-docker.pkg.dev/my-project/my-repo/my-image
- LOCATION์ ์ ์ฅ์์ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ ์์น์ ๋๋ค.
- PROJECT_ID๋ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.
- REPOSITORY๋ ์ด๋ฏธ์ง๊ฐ ์ ์ฅ๋ ์ ์ฅ์์ ์ด๋ฆ์ ๋๋ค.
- IMAGE_ID๋ ์ ์ฅ์์ ์ด๋ฏธ์ง ์ด๋ฆ์ ๋๋ค.
- TAG๋ ์ ๋ณด๋ฅผ ์ป์ ์ด๋ฏธ์ง ํ๊ทธ์ ๋๋ค.
- HASH์ ์ด๋ฏธ์ง ๋ค์ด์ ์คํธ์ ๋๋ค.
- LOCATION์ ์ ์ฅ์์ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ ์์น์ ๋๋ค.
- PROJECT_ID๋ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.
- REPOSITORY๋ ์ด๋ฏธ์ง๊ฐ ์ ์ฅ๋ ์ ์ฅ์์ ์ด๋ฆ์ ๋๋ค.
- IMAGE_ID๋ ์ ์ฅ์์ ์ด๋ฏธ์ง ์ด๋ฆ์ ๋๋ค.
- FILTER_EXPRESSION์ ์ทจ์ฝ์ ์ด์ปค๋ฐ์ค ํํฐ๋ง์ ์ค๋ช ๋ ํ์์ ์ํ ํํฐ๋ง ํํ์์ ๋๋ค.
- PROJECT_ID๋ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.
- OCCURRENCE_ID์ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ ๋ฐ์์ ์ด๋ฆ์ ๋๋ค.
- LOCATION์ ์ ์ฅ์์ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ ์์น์ ๋๋ค.
- REPOSITORY์ ์ ์ฅ์ ์ด๋ฆ์ ๋๋ค.
- PROJECT_ID๋ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.
- IMAGE_ID์ ๋ณด๋ ค๋ ๋ฐ์์ด ํฌํจ๋ ์ด๋ฏธ์ง์ ID์ ๋๋ค.
- LOCATION์ ์ ์ฅ์์ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ ์์น์ ๋๋ค.
- REPOSITORY์ ์ ์ฅ์ ์ด๋ฆ์ ๋๋ค.
- PROJECT_ID๋ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.
- IMAGE_ID์ ๋ณด๋ ค๋ ๋ฐ์์ด ํฌํจ๋ ์ด๋ฏธ์ง์ ID์ ๋๋ค.
- NOTE_KIND๋ ๋ฉ๋ชจ์ ์ข
๋ฅ์
๋๋ค.
- ์๋ฅผ ๋ค์ด ํ์ ์ด์ปค๋ฐ์ค๋ฅผ ๋์ดํ๋ ค๋ฉด
DISCOVERY
์ข ๋ฅ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Artifact Analysis๋ ์ด๋ฏธ์ง๋ฅผ ์ฒ์ Artifact Registry๋ก ํธ์ํ ๋ ์ด๋ฅผ ์์ฑํฉ๋๋ค. - ์ทจ์ฝ์ ์ด์ปค๋ฐ์ค๋ฅผ ๋์ดํ๋ ค๋ฉด
VULNERABILITY
์ข ๋ฅ๋ฅผ ์ฌ์ฉํ์ธ์.
- ์๋ฅผ ๋ค์ด ํ์ ์ด์ปค๋ฐ์ค๋ฅผ ๋์ดํ๋ ค๋ฉด
-
RESOURCE_URL์
https://HOSTNAME/PROJECT_ID/IMAGE_ID@sha256:HASH
์ด๋ฏธ์ง์ ์ ์ฒด URL์ ๋๋ค. - RESOURCE_URL_PREFIX๋ ์ผ๋ถ ์ด๋ฏธ์ง์ URL ํ๋ฆฌํฝ์ค์
๋๋ค.
- ์ด๋ฏธ์ง์ ๋ชจ๋ ๋ฒ์ ์ ๋์ดํ๋ ค๋ฉด
https://HOSTNAME/PROJECT_ID/IMAGE_ID@
๋ฅผ ์ฌ์ฉํ์ธ์. - ํ๋ก์ ํธ์ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ๋์ดํ๋ ค๋ฉด
https://HOSTNAME/PROJECT_ID/
์ ์ฌ์ฉํ์ธ์.
- ์ด๋ฏธ์ง์ ๋ชจ๋ ๋ฒ์ ์ ๋์ดํ๋ ค๋ฉด
- PROVIDER_PROJECT_ID๋ ์ ๊ณต์
์ฒด ํ๋ก์ ํธ์ ID์
๋๋ค. ์๋ฅผ ๋ค์ด
goog-vulnz
๋ ๊ธฐ๋ณธ ์ทจ์ฝ์ ๋ถ์์ ์ ๊ณตํฉ๋๋ค. - NOTE_ID๋ ๋ฉ๋ชจ์ ID์
๋๋ค. ๋ณด์ ๊ด๋ จ ๋ฉ๋ชจ๋ ๋๊ฐ
CVE-2019-12345
ํ์์ ๋๋ค. -
RESOURCE_URL์
https://HOSTNAME/PROJECT_ID/IMAGE_ID@sha256:HASH
์ด๋ฏธ์ง์ ์ ์ฒด URL์ ๋๋ค. Pub/Sub ์๋ฆผ์ ์ฌ์ฉํ์ฌ ์ทจ์ฝ์ ๋ฐ ๊ธฐํ ๋ฉํ๋ฐ์ดํฐ์ ๊ดํ ์๋ฆผ์ ๋ฐ์ต๋๋ค.
Artifact Analysis๋ฅผ Binary Authorization๊ณผ ํตํฉํ์ฌ ์ฆ๋ช ์ ๋ง๋ค์ด ์๋ ค์ง ๋ณด์ ๋ฌธ์ ๊ฐ ์๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๊ฐ ๋ฐฐํฌ ํ๊ฒฝ์์ ์คํ๋์ง ์๋๋ก ํฉ๋๋ค.
์ด๋ฏธ์ง ์ทจ์ฝ์ ๋ณด๊ธฐ
Artifact Analysis๋ ์๋ก์ด ์ด๋ฏธ์ง๊ฐ Artifact Registry์ ์ ๋ก๋๋ ๋ ์ด๋ฅผ ์ค์บํฉ๋๋ค. ์ด ์ค์บ์ ์ปจํ ์ด๋์ ์์คํ ํจํค์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ถ์ถํฉ๋๋ค.
Google Cloud ์ฝ์, Google Cloud CLI ๋๋ Container Analysis API๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ง์คํธ๋ฆฌ์ ์ด๋ฏธ์ง์ ๋ํ ์ทจ์ฝ์ ์ด์ปค๋ฐ์ค๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฏธ์ง์ ์ทจ์ฝ์ ์ด ์๋ ๊ฒฝ์ฐ ์ธ๋ถ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
Artifact Analysis๋ ์ง๋ 30์ผ ๋์ ํธ์๋๊ฑฐ๋ ๊ฐ์ ธ์จ ์ด๋ฏธ์ง์ ๋ฉํ๋ฐ์ดํฐ๋ง ์ ๋ฐ์ดํธํฉ๋๋ค. 30์ผ์ด ์ง๋๋ฉด ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ ์ด์ ์ ๋ฐ์ดํธ๋์ง ์์ผ๋ฉฐ ๊ฒฐ๊ณผ๊ฐ ์ค๋๋ฉ๋๋ค. ๋ํ Artifact Analysis๋ 90์ผ ๋๊ฒ ๋นํ์ฑ ์ํ์ธ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ด์ฒ๋ฆฌํ๋ฉฐ, ์ด ๋ฉํ๋ฐ์ดํฐ๋ Google Cloud ์ฝ์, gcloud ๋๋ API๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ค๋๋์๊ฑฐ๋ ๋ณด๊ด์ฒ๋ฆฌ๋ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ์ค์บํ๋ ค๋ฉด ํด๋น ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค์ธ์. ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์๋ก๊ณ ์นจํ๋ ๋ฐ ์ต๋ 24์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
Google Cloud ์ฝ์์์ ๋ฐ์ ๋ณด๊ธฐ
์ด๋ฏธ์ง์ ์ทจ์ฝ์ ์ ํ์ธํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
gcloud๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ ๋ณด๊ธฐ
์ด๋ฏธ์ง์ ์ด์ปค๋ฐ์ค๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์.
gcloud CLI์์ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
gcloud artifacts docker images list --show-occurrences \
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ฏธ์ง ํ๊ทธ ๋๋ ๋ ์ด์ด์ ์ทจ์ฝ์ ์ ๋ณด๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์.
gcloud CLI์์ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
gcloud artifacts docker images describe \
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID:TAG \
--show-package-vulnerability
๋๋
gcloud artifacts docker images describe \
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID@sha256:HASH \
--show-package-vulnerability
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ทจ์ฝ์ ์ด์ปค๋ฐ์ค๋ฅผ ํํฐ๋งํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์.
gcloud CLI์์ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
gcloud artifacts docker images list --show-occurrences \
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID --occurrence-filter=FILTER_EXPRESSION
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
API ๋๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ ๋ณด๊ธฐ
์ด๋ฏธ์ง์ ๋ฐ์์ ๋ณด๋ ค๋ฉด ์ ์ ํ ์ฝ๋ ์ํ์ ์ฌ์ฉํ์ธ์.
API
cURL ์ฌ์ฉ
ํ๋ก์ ํธ์์ ์ด์ปค๋ฐ์ค ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์.
curl -X GET -H "Content-Type: application/json" -H \
"Authorization: Bearer $(gcloud auth print-access-token)" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences
ํ๋ก์ ํธ์ ์ทจ์ฝ์ ์์ฝ์ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์.
curl -X GET -H "Content-Type: application/json" -H \
"Authorization: Bearer $(gcloud auth print-access-token)" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences:vulnerabilitySummary
ํน์ ์ด์ปค๋ฐ์ค์ ๋ํ ์ธ๋ถ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์์ ์คํํ์ธ์.
curl -X GET -H "Content-Type: application/json" -H \
"Authorization: Bearer $(gcloud auth print-access-token)" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences/OCCURRENCE_ID
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Java
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Go
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Go API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Ruby
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Ruby API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Cloud Build์์ ๋ฐ์ ๋ณด๊ธฐ
Cloud Build๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Google Cloud ์ฝ์์ ๋ณด์ ํต๊ณ ์ธก๋ฉด ํจ๋์์ ์ด๋ฏธ์ง ์ทจ์ฝ์ ์ ํ์ธํ ์๋ ์์ต๋๋ค.
๋ณด์ ํต๊ณ ์ธก๋ฉด ํจ๋์์๋ Artifact Registry์ ์ ์ฅ๋ ์ํฐํฉํธ์ ๋น๋ ๋ณด์ ์ ๋ณด๋ฅผ ๋๋ต์ ์ผ๋ก ๊ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ธก๋ฉด ํจ๋๊ณผ Cloud Build๋ฅผ ์ฌ์ฉํ์ฌ ์ํํธ์จ์ด ๊ณต๊ธ๋ง์ ๋ณดํธํ๋ ๋ฐฉ๋ฒ์ ์์ธํ ์์๋ณด๋ ค๋ฉด ๋น๋ ๋ณด์ ํต๊ณ ๋ณด๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ด์ปค๋ฐ์ค ํํฐ๋ง
์ด์ปค๋ฐ์ค๋ฅผ ๋ณด๊ธฐ ์ ์ gcloud
๋ช
๋ น์ด์ ํํฐ ๋ฌธ์์ด๊ณผ Artifact Analysis API๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ปค๋ฐ์ค๋ฅผ ํํฐ๋งํ ์ ์์ต๋๋ค. ๋ค์ ์น์
์์๋ ์ง์๋๋ ๊ฒ์ ํํฐ๋ฅผ ์ค๋ช
ํฉ๋๋ค.
๋ฐ๊ฒฌ ์ด์ปค๋ฐ์ค ๋ณด๊ธฐ
์ด๋ฏธ์ง๋ฅผ Artifact Registry์ ์ฒ์์ผ๋ก ํธ์ํ๋ฉด Artifact Analysis๊ฐ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ์ด๊ธฐ ์ค์บ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋ ๊ฒ์ ์ด์ปค๋ฐ์ค๋ฅผ ์์ฑํฉ๋๋ค.
์ด๋ฏธ์ง์ ํ์ ์ด์ปค๋ฐ์ค๋ฅผ ๊ฒ์ํ๋ ค๋ฉด ๋ค์ ํํฐ ํํ์์ ์ฌ์ฉํ์ธ์.
kind="DISCOVERY" AND resourceUrl="RESOURCE_URL"
gcloud
์ด๋ฏธ์ง์ ํ์ ์ด์ปค๋ฐ์ค๋ฅผ ํ์ธํฉ๋๋ค.
์ด ๊ฒฝ์ฐ ๋ช ๋ น์ด์ ํํ์์ด ์ง์ ์ฌ์ฉ๋์ง๋ ์์ง๋ง ๋์ผํ ์ ๋ณด๊ฐ ์ธ์๋ก ์ ๋ฌ๋ฉ๋๋ค.
gcloud artifacts docker images list --show-occurrences \
--occurrence-filter='kind="DISCOVERY"' --format=json \
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
API
ํ์ ์ด์ปค๋ฐ์ค๋ฅผ ๊ฒ์ํ๋ ค๋ฉด ํํฐ ํํ์์ ์๋์ฒ๋ผ URL๋ก ์ธ์ฝ๋ฉํ๊ณ GET
์์ฒญ์ ํฌํจํด์ผ ํฉ๋๋ค.
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences?filter=kind%3D%22DISCOVERY%22%20AND%20resourceUrl%3D%22ENCODED_RESOURCE_URL%22
์์ธํ ๋ด์ฉ์ projects.occurrences.get
API ์๋ํฌ์ธํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
Java
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Go
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Go API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Ruby
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Ruby API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ทจ์ฝ์ ์ด์ปค๋ฐ์ค ๋ณด๊ธฐ
ํน์ ์ด๋ฏธ์ง์ ์ทจ์ฝ์ ์ด์ปค๋ฐ์ค๋ฅผ ๋ณด๋ ค๋ฉด ํํฐ ํํ์์ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค.
kind="VULNERABILITY" AND resourceUrl="RESOURCE_URL"
gcloud
์ด๋ฏธ์ง์ ์ทจ์ฝ์ ์ด์ปค๋ฐ์ค๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์.
์ด ๊ฒฝ์ฐ ๋ช ๋ น์ด์ ํํ์์ด ์ง์ ์ฌ์ฉ๋์ง๋ ์์ง๋ง ๋์ผํ ์ ๋ณด๊ฐ ์ธ์๋ก ์ ๋ฌ๋ฉ๋๋ค.
gcloud artifacts docker images list --show-occurrences \
--occurrence-filter='kind="VULNERABILITY"' --format=json \
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
API
๋ฆฌ์์ค URL์ URL๋ก ์ธ์ฝ๋ฉ๋์ด์ผ ํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ด GET ์์ฒญ์ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences?filter=kind%3D%22VULNERABILITY%22%20AND%20resourceUrl%3D%22ENCODED_RESOURCE_URL%22
์์ธํ ๋ด์ฉ์ projects.occurrences.get
API ์๋ํฌ์ธํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
Java
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Go
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Go API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Ruby
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Ruby API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
Artifact Analysis์ฉ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Artifact Analysis ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ์์ธํ ๋ด์ฉ์ Artifact Analysis Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Artifact Analysis์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
ํน์ ์ ํ์ ์ด์ปค๋ฐ์ค ๋ณด๊ธฐ
์์ ๋ ์์์ ๋์จ ํํฐ ํํ์์ ์ ์ผํ ์ฐจ์ด์ ์ ์ด์ปค๋ฐ์ค ์ ํ์ ์๋ณํ๋ kind
๊ฐ์
๋๋ค. ์ด ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ทจ์ฝ์ ๋๋ ๋ฐฐํฌ์ ๊ฐ์ ํน์ ์ ํ์ ์ด์ปค๋ฐ์ค๋ก ๋ชฉ๋ก์ ์ ํํ ์ ์์ต๋๋ค.
ํน์ ์ด๋ฏธ์ง์ ์ด์ปค๋ฐ์ค๋ฅผ ๊ฒ์ํ๋ ค๋ฉด ๋ค์ ํํฐ ํํ์์ ์ฌ์ฉํฉ๋๋ค.
kind="NOTE_KIND" AND resourceUrl="RESOURCE_URL"
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ค์ ํํฐ ํํ์์ ์ฌ๋ฌ ์ด๋ฏธ์ง์์ ํน์ ์ข ๋ฅ์ ์ด์ปค๋ฐ์ค๋ฅผ ๊ฒ์ํฉ๋๋ค.
kind="NOTE_KIND" AND has_prefix(resourceUrl, "RESOURCE_URL_PREFIX")
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํน์ ๋ฉ๋ชจ์ ์ฐ๊ฒฐ๋ ์ด๋ฏธ์ง ๋ณด๊ธฐ
ํน์ ๋ฉ๋ชจ ID์ ์ฐ๊ฒฐ๋ ๋ฆฌ์์ค ๋ชฉ๋ก์ ๊ฒ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํน์ CVE ์ทจ์ฝ์ ์ด ์๋ ์ด๋ฏธ์ง๋ฅผ ๋์ดํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ์์ ํน์ ๋ฉ๋ชจ์ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ๋์ดํ๋ ค๋ฉด ๋ค์ ํํฐ ํํ์์ ์ฌ์ฉํฉ๋๋ค.
noteProjectId="PROVIDER_PROJECT_ID" AND noteId="NOTE_ID"
ํน์ ๋ฉ๋ชจ์ ํน์ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ๋ ค๋ฉด ๋ค์ ํํฐ ํํ์์ ์ฌ์ฉํฉ๋๋ค.
resourceUrl="RESOURCE_URL" AND noteProjectId="PROVIDER_PROJECT_ID" \ AND noteId="NOTE_ID"
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์๋ฅผ ๋ค์ด Google์์ ๋ถ์ํ ๋๋ก CVE-2017-16231์ ์ด์ปค๋ฐ์ค๊ฐ ์๋ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ๋ ค๋ฉด ๋ค์ ํํฐ ํํ์์ ์ฌ์ฉํฉ๋๋ค.
noteProjectId="goog-vulnz" AND noteId="CVE-2017-16231"