IAM으로 액세스 제어

아티팩트 분석은 Identity and Access Management (IAM)를 사용하여 수행할 작업에 따라 특정 리소스에 대한 세분화된 액세스 권한을 부여합니다.

이 페이지에서는 아티팩트 분석에 대한 액세스를 제어할 수 있는 권한을 설명합니다.

시작하기 전에

  1. 메타데이터 스토리지 개념 알아보기
  2. 리소스에 대한 액세스 권한을 부여, 취소, 변경하는 방법 알아보기

메타데이터 제공업체 및 고객의 IAM 역할

Artifact Analysis의 메타데이터 관리에는 서로 다른 액세스 수준이 필요한 두 항목이 포함됩니다.

  • 메모에 저장된 메타데이터를 만드는 제공업체입니다.
  • 메모의 어커런스를 확인하는 고객입니다.

메타데이터 제공업체

Artifact Analysis의 메타데이터 제공업체는 리소스 메타데이터 작성자입니다. 리소스에 발생할 수 있는 작업을 설명하는 메모를 만듭니다.

메모 저장만 전담하는 Google Cloud 프로젝트를 만드는 것이 좋습니다. 이 프로젝트에서 다음 역할을 지닌 사용자 또는 서비스 계정으로 액세스를 제한합니다.

  • 컨테이너 분석 메모 편집자 - 메모를 만들기 위해 고객이 어커런스를 연결할 수 있습니다.

  • 메모 뷰어의 컨테이너 분석 어커런스 - 메모에 연결된 모든 어커런스를 나열합니다.

메타데이터 고객

아티팩트 분석의 메타데이터 고객은 메타데이터 리소스에 정보를 연결합니다. 메모의 인스턴스이고 프로젝트 내에서 특정 이미지를 타겟팅하는 어커런스를 만듭니다.

고객이 메모에 어커런스를 연결하고 이를 나열할 수 있도록 사용자 또는 서비스 계정에 다음 역할을 부여합니다.

  • 컨테이너 분석 어커런스 편집자 - 고객 프로젝트에서 이 역할을 부여하여 어커런스를 만듭니다.

  • 컨테이너 분석 메모 첨부자 - 제공업체 프로젝트에서 이 역할을 부여하여 메모에 어커런스를 첨부합니다.

  • 컨테이너 분석 어커런스 뷰어 - 고객 프로젝트에서 이 역할을 부여하여 해당 프로젝트 내의 어커런스를 나열합니다.

취약점 메타데이터

취약점 메타데이터의 추가 보안 조치는 Artifact Analysis를 통해 제공업체가 여러 고객을 대신하여 취약점 어커런스를 만들고 관리할 수 있도록 허용하는 것입니다. 메타데이터 고객은 자체 프로젝트의 서드 파티 제공업체 취약점 어커런스에 대해 쓰기 권한이 없습니다.

예를 들어 Artifact Analysis로 프로젝트의 이미지에 대해 취약점 어커런스를 만들 수 있지만, Artifact Analysis로 발견되는 취약점 정보를 추가하거나 삭제할 수 없습니다.

따라서 고객 측의 취약점 메타데이터 조작을 방지하여 보안 정책을 적용할 수 있습니다.

IAM 역할

다음 표에는 아티팩트 분석 IAM 역할과 여기에 포함된 권한이 나와 있습니다.

Role Permissions

(roles/containeranalysis.admin)

Access to all Container Analysis resources.

containeranalysis.notes.attachOccurrence

containeranalysis.notes.create

containeranalysis.notes.delete

containeranalysis.notes.get

containeranalysis.notes.getIamPolicy

containeranalysis.notes.list

containeranalysis.notes.setIamPolicy

containeranalysis.notes.update

containeranalysis.occurrences.*

  • containeranalysis.occurrences.create
  • containeranalysis.occurrences.delete
  • containeranalysis.occurrences.get
  • containeranalysis.occurrences.getIamPolicy
  • containeranalysis.occurrences.list
  • containeranalysis.occurrences.setIamPolicy
  • containeranalysis.occurrences.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/containeranalysis.notes.attacher)

Can attach Container Analysis Occurrences to Notes.

containeranalysis.notes.attachOccurrence

containeranalysis.notes.get

(roles/containeranalysis.notes.editor)

Can edit Container Analysis Notes.

containeranalysis.notes.attachOccurrence

containeranalysis.notes.create

containeranalysis.notes.delete

containeranalysis.notes.get

containeranalysis.notes.list

containeranalysis.notes.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/containeranalysis.notes.occurrences.viewer)

Can view all Container Analysis Occurrences attached to a Note.

containeranalysis.notes.get

containeranalysis.notes.listOccurrences

(roles/containeranalysis.notes.viewer)

Can view Container Analysis Notes.

containeranalysis.notes.get

containeranalysis.notes.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/containeranalysis.occurrences.editor)

Can edit Container Analysis Occurrences.

containeranalysis.occurrences.create

containeranalysis.occurrences.delete

containeranalysis.occurrences.get

containeranalysis.occurrences.list

containeranalysis.occurrences.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/containeranalysis.occurrences.viewer)

Can view Container Analysis Occurrences.

containeranalysis.occurrences.get

containeranalysis.occurrences.list

resourcemanager.projects.get

resourcemanager.projects.list