创建 Amazon S3 网关端点 - CodeArtifact

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建 Amazon S3 网关端点

CodeArtifact 使用 Amazon Simple Storage Service (Amazon S3) 来存储程序包资产。要从 CodeArtifact 提取程序包,您必须为 Amazon S3 创建网关端点。当您的构建或部署过程从 CodeArtifact 下载程序包时,该过程必须访问 CodeArtifact 才能获取程序包元数据,还必须访问 Amazon S3 才能下载程序包资产(例如 Maven .jar 文件)。

注意

使用 Python 或 Swift 程序包格式时不需要 Amazon S3 端点。

要为 CodeArtifact 创建 Amazon S3 网关端点,请使用 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-ids routetableid

AWS CodeArtifact 所需的最低 Amazon S3 存储桶权限

Amazon S3 网关端点使用 IAM 策略文档来限制对服务的访问。要仅为 CodeArtifact 允许最低的 Amazon S3 存储桶权限,请在为端点创建 IAM 策略文档时,限制对 CodeArtifact 使用的 Amazon S3 存储桶的访问权限。

下表说明为了允许在每个区域中访问 CodeArtifact 而应在策略中引用的 Amazon S3 存储桶。

区域 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/*"] } ] }