本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CodeArtifact 權限參考
AWS CodeArtifact 資源與營運
在中 AWS CodeArtifact,主要資源是網域。在政策中,您使用 Amazon Resource Name (ARN) 來識別要套用政策的資源。存儲庫也是資源,並具有與之相關聯的 ARN。如需詳細資訊,請參閱中的 Amazon 資源名稱 (ARN)。Amazon Web Services 一般參考
資源類型 | ARN 格式 |
---|---|
網域 |
|
儲存庫 |
|
Package 群組 |
|
Package 含命名空間 |
|
沒有命名空間的 Package |
|
所有 CodeArtifact 資源 |
|
指定 AWS 區域中指定帳戶擁有的所有 CodeArtifact 資源 |
|
您指定的資源 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:CreateDomain
和 codeartifact:AssociateExternalConnection
)。若要在單一陳述式中指定多個動作,請用逗號加以分隔 (例如 "Action": [
"codeartifact:CreateDomain", "codeartifact:AssociateExternalConnection" ]
)。
使用萬用字元
您可以使用或不使用萬用字元 (*),指定 ARN 做為政策之 Resource
欄位中的資源值。您可以使用萬用字元指定多個動作或資源。例如,codeartifact:*
指定所有 CodeArtifact 動作,並codeartifact:Describe*
指定以該字開頭的所有 CodeArtifact 動作Describe
。
AWS CodeArtifact API 作業 | 所需許可 (API 動作) | 資源 |
---|---|---|
AssociateExternalConnection |
需要將外部連接添加到存儲庫。 |
|
CopyPackageVersions |
將套裝程式版本從來源儲存區域複製到目的地儲存區域:
目的地儲存庫為必要項目。
來源儲存庫需要。 |
|
CreateDomain |
建立網域時需要。
指定非預 |
|
CreatePackageGroup |
建立套件群組時需要。 |
|
CreateRepository |
建立儲存庫時需要。
存放庫需要,以便將其作為上游存放庫新增至下游存放庫。 |
|
DeleteDomain |
刪除網域時需要。 |
|
DeleteDomainPermissionsPolicy |
刪除網域的資源策略時需要。 |
|
DeletePackage |
刪除套件所需。 |
|
DeletePackageGroup |
刪除封裝群組時需要。 |
|
DeletePackageVersions |
需要刪除套件的版本。 |
|
DeleteRepository |
刪除 儲存庫時需要。 |
|
DeleteRepositoryPermissionsPolicy |
刪除存放庫的資源策略時需要。 |
|
DescribeDomain |
取得網域相關資訊所需。 |
|
DescribePackage |
需要獲取有關包的信息。 |
|
DescribePackageGroup |
取得套件群組相關資訊所需。 |
|
DescribePackageVersion |
取得套件版本相關資訊所需。 |
|
DescribeRepository |
需要獲取有關存儲庫的信息。 |
|
DisassociateExternalConnection |
需要從存放庫中移除外部連線。 |
|
DisposePackageVersions |
處置套件的版本所需。 |
|
GetAssociatedPackageGroup |
需要取得封裝的相關套件群組。 |
|
GetAuthorizationToken |
需要獲取訪問存儲庫的臨時授權令牌。 |
|
GetDomainPermissionsPolicy |
取得網域資源原則所需。 |
|
GetPackageVersionAsset |
取得套件版本中的資產所需。 |
arn:aws:codeartifact: |
GetPackageVersionReadme |
需要取得套件版本的讀我檔案。 |
|
GetRepositoryEndpoint |
取得儲存庫端點所需。 |
|
GetRepositoryPermissionsPolicy |
取得儲存庫資源策略所需。 |
|
ListAssociatedPackages |
傳回與套件群組相關聯的套件清單時需要。 |
|
ListDomains |
必須傳回 AWS 帳戶中網域的分頁清單。 |
|
ListPackageGroups |
必須傳回網域中套件群組的分頁清單。 |
|
ListPackages |
傳回儲存庫中套件的分頁清單所需。 |
|
ListPackageVersionAssets |
傳回套件版本中資產的分頁清單所需。 |
|
ListPackageVersionDependencies |
需要返回包版本依賴關係的分頁列表。 |
|
ListPackageVersions |
必須傳回儲存庫中套件版本的分頁清單。 |
|
ListRepositories |
必須傳回 AWS 帳戶中儲存庫的分頁清單。 |
|
ListRepositoriesInDomain |
需要返回域中存儲庫的分頁列表。 |
|
ListSubPackageGroups |
傳回套件群組的直接子套件群組清單時需要。 |
|
ListTagsForResource |
必須列出特定資源的標籤。 |
|
PublishPackageVersion |
需要將套件版本發佈至存放庫。 |
|
PutDomainPermissionsPolicy |
需要將資源策略新增至網域。 |
|
PutPackageMetadata |
需要將 Maven 套件版本發佈至儲存庫,或從 npm 套件版本新增或移除 npm 標籤。 |
|
PutPackageOriginConfiguration |
需要更新套件的來源組態。 |
|
PutRepositoryPermissionsPolicy |
需要將資源策略新增至存放庫。 |
|
ReadFromRepository |
需要使用套件管理員用戶端從存放庫讀取。 |
|
TagResource |
標記資源所需。 |
|
UntagResource |
需要從資源中移除標籤。 |
|
UpdatePackageGroup |
需要更新套件群組。 |
|
UpdatePackageGroupOriginConfiguration |
需要更新套件群組的原始組態。 |
|
UpdatePackageVersionsStatus |
需要變更套件版本的狀態。 |
|
UpdateRepository |
需要更新存放庫的描述或上游連線。如需詳細資訊,請參閱 CodeArtifact API 指南UpdateRepository中的修改儲存庫上游組態或。
存放庫需要,以便將其作為上游存放庫新增至下游存放庫。 |
|
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