本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CodeArtifact 使用亚马逊简单存储服务 (Amazon S3) Simple Service 来存储包裹资产。要从中提取包裹 CodeArtifact,您必须为 Amazon S3 创建网关终端节点。当您的构建或部署过程从中下载包时 CodeArtifact,它必须访问 CodeArtifact 才能获取包元数据,Amazon S3 才能下载包资产(例如 Maven .jar
文件)。
注意
使用 Python 或 Swift 包格式时,不需要使用 Amazon S3 终端节点。
要为创建 Amazon S3 网关终端节点 CodeArtifact,请使用 Amazon EC2 create-vpc-endpoint
AWS CLI 命令。在创建端点时,必须为 VPC 选择路由表。有关更多信息,请参阅《Amazon Virtual Private Cloud 用户指南》中的网关 VPC 端点。
以下示例创建 Amazon S3 端点。
aws ec2 create-vpc-endpoint --vpc-id
vpcid
--service-name com.amazonaws.region
.s3 \ --route-table-idsroutetableid
Amazon S3 存储桶的最低权限 AWS CodeArtifact
Amazon S3 网关端点使用 IAM 策略文档来限制对服务的访问。要仅允许最低的 Amazon S3 存储桶权限 CodeArtifact,请限制访问您在为终端节点创建 IAM 策略文档时 CodeArtifact 使用的 Amazon S3 存储桶。
下表描述了您应在策略中引用的 Amazon S3 存储桶,以允许 CodeArtifact 在每个区域进行访问。
区域 | Amazon S3 存储桶 ARN |
---|---|
us-east-1 |
arn:aws:s3:::assets-193858265520-us-east-1 |
us-east-2 |
arn:aws:s3:::assets-250872398865-us-east-2 |
us-west-2 |
arn:aws:s3:::assets-787052242323-us-west-2 |
eu-west-1 |
arn:aws:s3:::assets-438097961670-eu-west-1 |
eu-west-2 |
arn:aws:s3:::assets-247805302724-eu-west-2 |
eu-west-3 |
arn:aws:s3:::assets-762466490029-eu-west-3 |
eu-north-1 |
arn:aws:s3:::assets-611884512288-eu-north-1 |
eu-south-1 |
arn:aws:s3:::assets-484130244270-eu-south-1 |
eu-central-1 |
arn:aws:s3:::assets-769407342218-eu-central-1 |
ap-northeast-1 |
arn:aws:s3:::assets-660291247815-ap-northeast-1 |
ap-southeast-1 |
arn:aws:s3:::assets-421485864821-ap-southeast-1 |
ap-southeast-2 |
arn:aws:s3:::assets-860415559748-ap-southeast-2 |
ap-south-1 |
arn:aws:s3:::assets-681137435769-ap-south-1 |
您可以使用aws codeartifact describe-domain
命令来获取 CodeArtifact 域使用的 Amazon S3 存储桶。
aws codeartifact describe-domain --domain
mydomain
{
"domain": {
"name": "mydomain",
"owner": "111122223333",
"arn": "arn:aws:codeartifact:us-west-2:111122223333:domain/mydomain",
"status": "Active",
"createdTime": 1583075193.861,
"encryptionKey": "arn:aws:kms:us-west-2:111122223333:key/a73que8sq-ba...",
"repositoryCount": 13,
"assetSizeBytes": 513830295,
"s3BucketArn": "arn:aws:s3:::assets-787052242323-us-west-2"
}
}
示例
以下示例说明如何提供us-east-1
对该地区 CodeArtifact 操作所需的 Amazon S3 存储桶的访问权限。对于其他区域,请根据上表使用您所在区域的正确权限 ARN 来更新 Resource
条目。
{ "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::assets-
193858265520
-us-east-1
/*"] } ] }