Artifact Analysis は、Identity and Access Management(IAM)を使用して、実行するタスクに応じて特定のリソースへのきめ細かいアクセス権を付与します。
このページでは、アーティファクト分析へのアクセスを制御する権限について説明します。
始める前に
- メタデータ ストレージのコンセプトを読む。
- リソースに対するアクセス権の付与、取り消し、変更の方法を読む。
Artifact Analysis のメタデータ管理には、異なるレベルのアクセスを必要とする 2 つのエンティティが関与します。
- メモに保存されるメタデータを作成するプロバイダ。
- メモのオカレンスを識別する顧客。
Artifact Analysis のメタデータ プロバイダは、リソース メタデータのライターです。メモが作成されます。これは、リソースに対して発生する可能性のあることを説明するものです。
メモの保存専用の Google Cloud プロジェクトを作成することをおすすめします。そのプロジェクトで、次のロールを持つユーザーまたはサービス アカウントへのアクセスを制限します。
Artifact Analysis のメタデータ顧客は、メタデータ リソースに情報を追加します。オカレンスを作成します。これは、メモのインスタンスであり、プロジェクト内の特定のイメージをターゲットにするものです。
顧客がオカレンスをメモに追加して一覧表示できるようにするには、ユーザーまたはサービス アカウントに次の役割を付与します。
Container Analysis オカレンス編集者 - 顧客プロジェクトでこの役割を付与してオカレンスを作成します。
Container Analysis メモの添付者 - メモにオカレンスを添付するには、プロバイダ プロジェクトでこの役割を付与します。
Container Analysis オカレンスの閲覧者 - 顧客プロジェクトでこの役割を付与して、プロジェクト内のオカレンスを一覧表示します。
脆弱性メタデータに対する追加のセキュリティ対策として、Artifact Analysis により多数の顧客の代わりに脆弱性オカレンスをプロバイダが作成、管理できるようにすることがあります。メタデータ顧客には、自身のプロジェクトでのサードパーティ プロバイダの脆弱性オカレンスに対する書き込み権限がありません。
たとえば、Artifact Analysis はプロジェクトでイメージの脆弱性オカレンスを作成できますが、Artifact Analysis によって検出された脆弱性情報を追加または削除することはできません。
これにより、顧客側の脆弱性メタデータの操作を防止することによって、セキュリティ ポリシーを適用できるようになります。
IAM ロール
次の表に、Artifact Analysis の IAM ロールと、ロールに含まれる権限を示します。
| Role |
Permissions |
Container Analysis Admin
(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
|
Container Analysis Editor
(roles/containeranalysis.editor)
Editor role for Container Analysis
|
containeranalysis.notes.attachOccurrence
containeranalysis.notes.create
containeranalysis.notes.delete
containeranalysis.notes.get
containeranalysis.notes.getIamPolicy
containeranalysis.notes.list
containeranalysis.notes.listOccurrences
containeranalysis.notes.update
containeranalysis.occurrences.create
containeranalysis.occurrences.delete
containeranalysis.occurrences.get
containeranalysis.occurrences.getIamPolicy
containeranalysis.occurrences.list
containeranalysis.occurrences.update
resourcemanager.projects.get
resourcemanager.projects.list
|
Container Analysis Viewer
(roles/containeranalysis.viewer)
Viewer role for Container Analysis
|
containeranalysis.notes.get
containeranalysis.notes.getIamPolicy
containeranalysis.notes.list
containeranalysis.occurrences.get
containeranalysis.occurrences.getIamPolicy
containeranalysis.occurrences.list
resourcemanager.projects.get
resourcemanager.projects.list
|
Container Analysis Notes Attacher
(roles/containeranalysis.notes.attacher)
Can attach Container Analysis Occurrences to Notes.
|
containeranalysis.notes.attachOccurrence
containeranalysis.notes.get
|
Container Analysis Notes Editor
(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
|
Container Analysis Occurrences for Notes Viewer
(roles/containeranalysis.notes.occurrences.viewer)
Can view all Container Analysis Occurrences attached to a Note.
|
containeranalysis.notes.get
containeranalysis.notes.listOccurrences
|
Container Analysis Notes Viewer
(roles/containeranalysis.notes.viewer)
Can view Container Analysis Notes.
|
containeranalysis.notes.get
containeranalysis.notes.list
resourcemanager.projects.get
resourcemanager.projects.list
|
Container Analysis Occurrences Editor
(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
|
Container Analysis Occurrences Viewer
(roles/containeranalysis.occurrences.viewer)
Can view Container Analysis Occurrences.
|
containeranalysis.occurrences.get
containeranalysis.occurrences.list
resourcemanager.projects.get
resourcemanager.projects.list
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role |
Permissions |
Container Analysis Service Agent
(roles/containeranalysis.ServiceAgent)
Gives Container Analysis API the access it needs to function
|
artifactregistry.attachments.get
artifactregistry.attachments.list
artifactregistry.dockerimages.*
artifactregistry.dockerimages.get
artifactregistry.dockerimages.list
artifactregistry.files.download
artifactregistry.files.get
artifactregistry.files.list
artifactregistry.locations.*
artifactregistry.locations.get
artifactregistry.locations.list
artifactregistry.mavenartifacts.*
artifactregistry.mavenartifacts.get
artifactregistry.mavenartifacts.list
artifactregistry.npmpackages.*
artifactregistry.npmpackages.get
artifactregistry.npmpackages.list
artifactregistry.packages.get
artifactregistry.packages.list
artifactregistry.projectconfigs.get
artifactregistry.projectsettings.get
artifactregistry.pythonpackages.*
artifactregistry.pythonpackages.get
artifactregistry.pythonpackages.list
artifactregistry.repositories.downloadArtifacts
artifactregistry.repositories.exportArtifacts
artifactregistry.repositories.get
artifactregistry.repositories.list
artifactregistry.repositories.listEffectiveTags
artifactregistry.repositories.listTagBindings
artifactregistry.repositories.readViaVirtualRepository
artifactregistry.rules.get
artifactregistry.rules.list
artifactregistry.tags.get
artifactregistry.tags.list
artifactregistry.versions.get
artifactregistry.versions.list
containeranalysis.notes.list
|