创建 Amazon S3 网关端点 - CodeArtifact

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

创建 Amazon S3 网关端点

CodeArtifact 使用亚马逊简单存储服务 (Amazon S3) Simple Service 来存储包裹资产。要从中提取包裹 CodeArtifact,您必须为 Amazon S3 创建网关终端节点。当您的构建或部署过程从中下载包时 CodeArtifact,它必须访问 CodeArtifact 才能获取包元数据,Amazon S3 才能下载包资产(例如 Maven .jar 文件)。

注意

使用 Python 或 Swift 包格式时,不需要亚马逊 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-ids routetableid

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