AWS CodeArtifact 權限參考 - CodeArtifact

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS CodeArtifact 權限參考

AWS CodeArtifact 資源與營運

在中 AWS CodeArtifact,主要資源是網域。在政策中,您使用 Amazon Resource Name (ARN) 來識別要套用政策的資源。存儲庫也是資源,並具有與之相關聯的 ARN。如需詳細資訊,請參閱中的 Amazon 資源名稱 (ARN)Amazon Web Services 一般參考

資源類型 ARN 格式
網域

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

儲存庫

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

Package 群組

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

Package 含命名空間

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

沒有命名空間的 Package

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format//my_package

所有 CodeArtifact 資源

arn:aws:codeartifact:*

指定 AWS 區域中指定帳戶擁有的所有 CodeArtifact 資源

arn:aws:codeartifact:region-ID:account-ID:*

您指定的資源 ARN 取決於您要控制存取的動作。

您可以使用它的 ARN 在陳述式中指定特定網域 (MyDomain),如下所示。

"Resource": "arn:aws:codeartifact:us-east-2:123456789012:domain/myDomain"

您可以使用它的 ARN 在您的聲明中指定一個特定的存儲庫(MyRepo),如下所示。

"Resource": "arn:aws:codeartifact:us-east-2:123456789012:domain/myDomain/myRepo"

若要在單一陳述式中指定多項資源,請使用逗號分隔他們的 ARN。下列陳述式適用於特定網域中的所有套裝程式和儲存庫。

"Resource": [ "arn:aws:codeartifact:us-east-2:123456789012:domain/myDomain", "arn:aws:codeartifact:us-east-2:123456789012:repository/myDomain/*", "arn:aws:codeartifact:us-east-2:123456789012:package/myDomain/*" ]
注意

許多 AWS 服務會將冒號 (:) 或正斜線 (/) 視為 ARN 中的相同字元。但是,在資源模式和規則中 CodeArtifact 使用完全匹配。在建立事件模式時,請務必使用正確的字元,使這些字元符合資源中的 ARN 語法。

AWS CodeArtifact API 操作和權限

當您設定存取控制和撰寫可附加至 IAM 身分 (身分型政策) 的許可政策時,您可以使用下表做為參考。

您可以在 AWS CodeArtifact 原則中使用 AWS寬條件金鑰來表示條件。如需清單,請參閱 IAM 使用者指南中的 IAM JSON 政策元素參考

您可以在政策的 Action 欄位中指定動作。若要指定動作,請使用 codeartifact: 字首,後面接著 API 操作名稱 (例如 codeartifact:CreateDomaincodeartifact:AssociateExternalConnection)。若要在單一陳述式中指定多個動作,請用逗號加以分隔 (例如 "Action": [ "codeartifact:CreateDomain", "codeartifact:AssociateExternalConnection" ])。

使用萬用字元

您可以使用或不使用萬用字元 (*),指定 ARN 做為政策之 Resource 欄位中的資源值。您可以使用萬用字元指定多個動作或資源。例如,codeartifact:*指定所有 CodeArtifact 動作,並codeartifact:Describe*指定以該字開頭的所有 CodeArtifact 動作Describe

CodeArtifact API 操作和動作所需的權限
AWS CodeArtifact API 作業 所需許可 (API 動作) 資源
AssociateExternalConnection

codeartifact:AssociateExternalConnection

需要將外部連接添加到存儲庫。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

CopyPackageVersions

將套裝程式版本從來源儲存區域複製到目的地儲存區域:

codeartifact:CopyPackageVersions

目的地儲存庫為必要項目。

codeartifact:ReadFromRepository

來源儲存庫需要。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

CreateDomain

codeartifact:CreateDomain

建立網域時需要。

kms:DescribeKeykms:CreateGrant

指定非預encryptionKey設值時,所提供的 KMS 金鑰為必要項目。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

CreatePackageGroup

codeartifact:CreatePackageGroup

建立套件群組時需要。

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

CreateRepository

codeartifact:CreateRepository

建立儲存庫時需要。

codeartifact:AssociateWithDownstreamRepository

存放庫需要,以便將其作為上游存放庫新增至下游存放庫。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

DeleteDomain

codeartifact:DeleteDomain

刪除網域時需要。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

DeleteDomainPermissionsPolicy

codeartifact:DeleteDomainPermissionsPolicy

刪除網域的資源策略時需要。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

DeletePackage

codeartifact:DeletePackage

刪除套件所需。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

DeletePackageGroup

codeartifact:DeletePackageGroup

刪除封裝群組時需要。

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

DeletePackageVersions

codeartifact:DeletePackageVersions

需要刪除套件的版本。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

DeleteRepository

codeartifact:DeleteRepository

刪除 儲存庫時需要。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

DeleteRepositoryPermissionsPolicy

codeartifact:DeleteRepositoryPermissionsPolicy

刪除存放庫的資源策略時需要。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

DescribeDomain

codeartifact:DescribeDomain

取得網域相關資訊所需。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

DescribePackage

codeartifact:DescribePackage

需要獲取有關包的信息。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

DescribePackageGroup

codeartifact:DescribePackageGroup

取得套件群組相關資訊所需。

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

DescribePackageVersion

codeartifact:DescribePackageVersion

取得套件版本相關資訊所需。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

DescribeRepository

codeartifact:DescribeRepository

需要獲取有關存儲庫的信息。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

DisassociateExternalConnection

codeartifact:DisassociateExternalConnection

需要從存放庫中移除外部連線。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

DisposePackageVersions

codeartifact:DisposePackageVersions

處置套件的版本所需。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

GetAssociatedPackageGroup

codeartifact:GetAssociatedPackageGroup

需要取得封裝的相關套件群組。

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

GetAuthorizationToken

codeartifact:GetAuthorizationToken

sts:GetServiceBearerToken

需要獲取訪問存儲庫的臨時授權令牌。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

GetDomainPermissionsPolicy

codeartifact:GetDomainPermissionsPolicy

取得網域資源原則所需。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

GetPackageVersionAsset

codeartifact:GetPackageVersionAsset

取得套件版本中的資產所需。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package
GetPackageVersionReadme

codeartifact:GetPackageVersionReadme

需要取得套件版本的讀我檔案。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

GetRepositoryEndpoint

codeartifact:GetRepositoryEndpoint

取得儲存庫端點所需。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

GetRepositoryPermissionsPolicy

codeartifact:GetRepositoryPermissionsPolicy

取得儲存庫資源策略所需。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

ListAssociatedPackages

codeartifact:ListAssociatedPackages

傳回與套件群組相關聯的套件清單時需要。

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

ListDomains

codeartifact:ListDomains

必須傳回 AWS 帳戶中網域的分頁清單。

*

ListPackageGroups

codeartifact:ListPackageGroups

必須傳回網域中套件群組的分頁清單。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

ListPackages

codeartifact:ListPackages

傳回儲存庫中套件的分頁清單所需。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

ListPackageVersionAssets

codeartifact:ListPackageVersionAssets

傳回套件版本中資產的分頁清單所需。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

ListPackageVersionDependencies

codeartifact:ListPackageVersionDependencies

需要返回包版本依賴關係的分頁列表。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

ListPackageVersions

codeartifact:ListPackageVersions

必須傳回儲存庫中套件版本的分頁清單。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

ListRepositories

codeartifact:ListRepositories

必須傳回 AWS 帳戶中儲存庫的分頁清單。

*

ListRepositoriesInDomain

codeartifact:ListRepositoriesInDomain

需要返回域中存儲庫的分頁列表。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

ListSubPackageGroups

codeartifact:ListSubPackageGroups

傳回套件群組的直接子套件群組清單時需要。

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

ListTagsForResource

codeartifact:ListTagsForResource

必須列出特定資源的標籤。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

PublishPackageVersion

codeartifact:PublishPackageVersion

需要將套件版本發佈至存放庫。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

PutDomainPermissionsPolicy

codeartifact:PutDomainPermissionsPolicy

需要將資源策略新增至網域。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

PutPackageMetadata

codeartifact:PutPackageMetadata

需要將 Maven 套件版本發佈至儲存庫,或從 npm 套件版本新增或移除 npm 標籤。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

PutPackageOriginConfiguration

codeartifact:PutPackageOriginConfiguration

需要更新套件的來源組態。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

PutRepositoryPermissionsPolicy

codeartifact:PutRepositoryPermissionsPolicy

需要將資源策略新增至存放庫。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

ReadFromRepository

codeartifact:ReadFromRepository

需要使用套件管理員用戶端從存放庫讀取。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

TagResource

codeartifact:TagResource

標記資源所需。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

UntagResource

codeartifact:UntagResource

需要從資源中移除標籤。

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

UpdatePackageGroup

codeartifact:UpdatePackageGroup

需要更新套件群組。

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

UpdatePackageGroupOriginConfiguration

codeartifact:UpdatePackageGroupOriginConfiguration

需要更新套件群組的原始組態。

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

UpdatePackageVersionsStatus

codeartifact:UpdatePackageVersionsStatus

需要變更套件版本的狀態。

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

UpdateRepository

codeartifact:UpdateRepository

需要更新存放庫的描述或上游連線。如需詳細資訊,請參閱 CodeArtifact API 指南UpdateRepository中的修改儲存庫上游組態或。

codeartifact:AssociateWithDownstreamRepository

存放庫需要,以便將其作為上游存放庫新增至下游存放庫。

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

Package 群組 ARN

注意

本節說明套件群組 ARN 和模式編碼如何提供資訊。建議您從控制台複製 ARN,或使用 DescribePackageGroup API 獲取 ARN,而不是編碼模式和構建 ARN。

IAM 政策使用萬用字元*, 來比對多個 IAM 動作或多個資源。Package 群組模式也會使用*字元。為了更輕鬆地撰寫符合單一套件群組的 IAM 政策,套件群組 ARN 格式會使用套件群組模式的編碼版本。

具體而言,封裝群組 ARN 格式如下:

arn:aws:codeartifact:region:account-ID:package-group/my_domain/encoded_package_group_pattern

其中編碼的包組模式是包組模式,某些特殊字符替換為其百分比編碼值。下列清單包含字元及其對應的百分比編碼值:

  • * : %2a

  • $ : %24

  • % : %25

例如,網域 (/*) 的根套件群組的 ARN 會是:

arn:aws:codeartifact:us-east-1:111122223333:package-group/my_domain/%2a

請注意,不包括在列表中的字符不能被編碼,並且 ARN 是區分大小寫的,因此*必須編碼為%2a和不。%2A