本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 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-idvpcid--service-name com.amazonaws.region.s3 \ --route-table-idsroutetableid
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 --domainmydomain
{ "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/*"] } ] }