

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 Amazon S3 閘道端點
<a name="create-s3-gateway-endpoint"></a>

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 端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-gateway.html)。

下列命令會建立 Amazon S3 端點。

```
aws ec2 create-vpc-endpoint --vpc-id vpcid --service-name com.amazonaws.region.s3 \
  --route-table-ids routetableid
```

## AWS CodeArtifact 的最低 Amazon S3 儲存貯體許可
<a name="s3-gateway-endpoint-permissions"></a>

Amazon S3 閘道端點會使用 IAM 政策文件來限制服務的存取權限。若要僅允許 CodeArtifact 的最低 Amazon S3 儲存貯體許可，請限制 CodeArtifact 在您為端點建立 IAM 政策文件時所使用的 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"
  }
}
```

### 範例
<a name="s3-gateway-policy-example"></a>

下列範例說明如何提供區域中 CodeArtifact 操作所需的 Amazon S3 儲存貯體存取權`us-east-1`。對於其他區域，請根據上表，使用您區域的正確許可 ARN 更新`Resource`項目。

```
{
  "Statement": [
    {
      "Sid": "Access-to-specific-bucket-only",
      "Principal": "*",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::assets-193858265520-us-east-1/*"]
    }
  ]
}
```