아티클
튜토리얼
대화형 가이드
Snyk를 Atlassian Open DevOps에 통합
![Warren Marusiak 얼굴 사진](https://wac-cdn.atlassian.com/dam/jcr:7509aefb-43e8-401d-90fe-0850cbe6bb13/wmarusiak_headshot%20(1).png?cdnVersion=2022)
Warren Marusiak
선임 기술 에반젤리스트
Jira Software 및 다양한 연결된 도구를 사용하여 애플리케이션을 개발, 배포 및 관리하는 방법을 보여주기 위해 저희 팀에서는 머신러닝을 사용하여 이미지에 레이블을 적용하는 간단한 AWS 기반 데모 애플리케이션인 ImageLabeller를 만들었습니다.
이 페이지에서는 Snyk를 Bitbucket과 통합하는 방법을 다룹니다. 시작하기 전에 컨텍스트 파악을 위해 ImageLabeller 소개 페이지를 읽어보는 것이 좋습니다.
Bitbucket 및 Snyk 연결
Bitbucket에서 Snyk로 작업하는 데는 몇 가지 방법이 있습니다. 첫 번째는 리포지토리 화면의 보안 탭을 통해 Bitbucket에 네이티브 Snyk 통합을 사용으로 설정하는 것입니다. 두 번째는 bitbucket-pipelines.yml 파일에 Snyk 단계를 추가하는 것입니다. 둘 다 하는 데 따른 단점은 없습니다. Bitbucket의 Synk 통합을 통해 Bitbucket의 리포지토리를 보는 사용자는 누구나 취약성 데이터에 빠르게 액세스할 수 있습니다. 그런 다음 Snyk 웹사이트를 클릭하여 발견된 각 취약성에 대한 추가 정보를 볼 수 있습니다. bitbucket-pipelines.yml 파일의 Snyk 단계를 사용하면 파이프라인의 모든 커밋을 자동으로 스캔할 수 있습니다.
Bitbucket에 Snyk 통합 추가
Bitbucket 리포지토리에 Snyk를 추가하려면 보안 탭을 클릭하고 Snyk 통합을 찾은 다음 지금 사용해 보기를 클릭합니다.
![Bitbucket 이미지에 Snyk 통합 추가](https://wac-cdn.atlassian.com/dam/jcr:3a785ad1-bbee-4d0f-9802-0d4396752041/AddSnykToBitbucket01.png?cdnVersion=2022)
액세스 권한을 부여하고 Bitbucket을 Snyk와 연결을 클릭합니다.
![Bitbucket를 Snyk에 연결](https://wac-cdn.atlassian.com/dam/jcr:2a01debd-e840-4086-b3cb-0e01a0175c01/AddSnykToBitbucket02.png?cdnVersion=2022)
통합을 설정하면 탭을 닫습니다.
![통합 가이드](https://wac-cdn.atlassian.com/dam/jcr:c5cc82e8-b1a0-4133-a918-79d69b41c667/AddSnykToBitbucket03.png?cdnVersion=2022)
왼쪽 탐색에 나타나는 새 Snyk 옵션을 클릭합니다. 그런 다음 go.mod 파일을 클릭하여 더 자세한 정보를 확인합니다. 이 예에서는 Golang 리포지토리가 go 모듈을 사용하여 종속성을 관리합니다. 기타 리포지토리 종류에는 다른 종속성 파일이 있을 것입니다.
![Snyk 화면](https://wac-cdn.atlassian.com/dam/jcr:86d060c6-bac2-4484-be46-093702340c0e/TheNewSynkScreen.png?cdnVersion=2022)
각 취약성을 해결하는 방법을 더 알아보려면 Snyk 방문을 클릭하여 Snyk 웹사이트로 이동합니다.
![Snyk 방문](https://wac-cdn.atlassian.com/dam/jcr:2de8deb2-2f4f-4b06-8dd6-e63319992a31/SnykVulnerabilityDetails.png?cdnVersion=2022)
Snyk 앱의 이 보기는 Bitbucket에서 표시되는 세부 정보 화면과 비슷합니다. 이 화면에는 취약성의 목록과 각 취약성에 대한 추가 정보가 표시됩니다.
![Snyk 웹사이트 스크린샷](https://wac-cdn.atlassian.com/dam/jcr:f1fcadc8-a1a1-41e3-9fc6-25271e2a801e/SnykWebsite01.png?cdnVersion=2022)
아래는 Snyk의 취약성 보고서 예시입니다. 취약성이 발생한 위치의 계층 구조가 자세한 경로 섹션에 나와 있습니다. 아래 예에서 SubmitImage가 AWS Golang SDK로부터 이 취약성을 물려받는 것을 볼 수 있습니다. Snyk은 왼쪽에 모든 이슈의 상태를 요약해 주며 이 경우에는 해결할 수 있는 이슈가 없습니다. 수정 가능성 아래에 가능한 수정 없음 이슈가 다섯 개 있습니다. 현재 이슈에 대해 가능한 완화 조치가 없다는 뜻입니다. 개발자는 통합을 모니터링하고 수정 사항이 나오면 바로 적용할 수 있습니다.
![취약성 세부 정보 스크린샷](https://wac-cdn.atlassian.com/dam/jcr:b68b5b5e-7c77-4c39-8725-0e066d2a3724/SnykVulnerabilityDetails02.png?cdnVersion=2022)
bitbucket-pipelines.yml에 Snyk 단계 추가
Bitbucket 사용자 인터페이스를 통해 Snyk에 액세스할 수 있을 뿐만 아니라 Bitbucket Pipelines에서도 bitbucket-pipelines.yml 파일에 단계를 추가하여 Snyk 기능에 액세스할 수 있습니다. 즉, 커밋할 때마다 취약성 검사가 자동으로 이루어지고 보안 취약성이 있으면 알림이 제공됩니다.
아래는 파이프라인의 일부로 Snyk 테스트를 실행하기 위한 두 개의 bitbucket-pipelines.yml 스니펫입니다.
Golang용 Bitbucket Pipelines에 Snyk 추가
이 예시는 종속성 관리를 위한 Go 모듈을 사용하여 Golang 프로젝트의 snyk 테스트를 실행하는 방법을 보여줍니다.
definitions:
steps:
-step: &runsnyktest
name: run snyk test
image: snyk/snyk:golang
script:
- snyk auth $SNYK_TOKEN
- cd submitImage
- go mod graph
- snyk test
pipelines:
default:
- step: *runsnyktest
Python용 Bitbucket Pipelines에 Snyk 추가
이 예시는 종속성 관리를 위한 Pip을 사용하여 Python 프로젝트의 snyk test를 실행하는 방법을 보여줍니다.
definitions:
steps:
-step: &runsnyktest
name: run snyk test
image: snyk/snyk:python
script:
- snyk auth $SNYK_TOKEN
- cd src
- snyk test --skip-unresolved
- cd ../tst
- snyk test --skip-unresolved
pipelines:
default:
- step: *runsnyktest
runsnyktest 단계를 Bitbucket Pipelines에서 실행하면 다음과 같습니다.
![Bitbucket Pipelines의 runsnyktest 단계](https://wac-cdn.atlassian.com/dam/jcr:d7b281c9-b189-43cc-a635-91a8bd31c804/SnykStepInBitbucketPipeline.png?cdnVersion=2022)
결론...
CI/CD 파이프라인에 보안을 통합하는 관행은 DevSecOps의 핵심 원칙입니다. DevSecOps는 계획, 코딩, 빌드, 테스트, 릴리스 및 배포와 같은 일반적인 DevOps 파이프라인의 각 단계에 보안이 적용되어야 한다고 지지합니다. 워크플로에 보안을 통합하면 보안은 나중에 고민하는 요소가 아니라 개발 프로세스의 적극적이고 통합된 부분이 됩니다. 즉, 앱이 더 안전해지고 인시던트가 적어지며 고객 만족도가 높아집니다.
이 문서 공유
다음 주제
여러분께 도움을 드릴 자료를 추천합니다.
이러한 리소스에 책갈피를 지정하여 DevOps 팀의 유형에 대해 알아보거나 Atlassian에서 DevOps에 대한 지속적인 업데이트를 확인하세요.
![DevOps 일러스트레이션](https://wac-cdn.atlassian.com/dam/jcr:bd9d8b2c-ca36-444f-8595-719cb1990e64/Devops-community.png?cdnVersion=2022)
DevOps 커뮤니티
![DevOps 일러스트레이션](https://wac-cdn.atlassian.com/dam/jcr:297108ea-d232-4368-af51-b53af230c4fe/Simulation-workshop.png?cdnVersion=2022)
DevOps 학습 경로
![맵 일러스트레이션](https://wac-cdn.atlassian.com/dam/jcr:25f6330a-4191-408f-a4e5-2e24bfba67b4/Maturity-model.png?cdnVersion=2022)