使用与 Amazon S3 兼容的专用存储桶作为来源

本页介绍了如何使用 Amazon Simple Storage Service (Amazon S3) 和 AWS 签名版本 4将媒体 CDN 连接到私有 Amazon S3 兼容存储分区。 媒体 CDN 不支持 AWS 签名版本 4a。

媒体 CDN 支持 AWS 签名版本 4 来对来源请求进行身份验证。您可以使用此功能将媒体 CDN 连接到私有 Amazon S3 兼容存储分区,以确保您的内容仅与媒体 CDN 共享。 您还可以启用客户端身份验证,以实现更深层次的防御。 如需了解详情,请参阅使用签名请求

准备工作

验证您是否拥有以下资源:

  • 遵循命名规则的私有 Amazon S3 存储桶。

  • 用于访问上述私有 Amazon S3 存储桶的专用 AWS IAM 用户账号。确保存储桶向 AWS IAM 用户账号授予 s3:getObject 权限。如需详细了解如何 配置对 Amazon S3 存储桶的访问权限,请参阅 Amazon S3 中的身份和访问权限管理

  • 专用 AWS IAM 用户账号的 AWS 访问密钥 ID 和 AWS 私有访问密钥。如需了解详情,请参阅 管理 IAM 用户的访问密钥

  • 如果您之前未使用过 Secret Manager,请配置 Secret Manager

为媒体 CDN 创建服务代理

如需为媒体 CDN 创建服务代理,请使用 gcloud beta services identity create 命令

gcloud

gcloud beta services identity create \
    --project PROJECT_ID \
    --service=networkservices.googleapis.com

PROJECT_ID 替换为您的项目 ID。

如需了解详情,请参阅触发服务代理创建

在 Secret Manager 中存储访问密钥

按照以下步骤在 Secret Manager 中创建 Secret。

控制台

  1. 在 Google Cloud 控制台中,前往 Secret Manager 页面。

    转到 Secret Manager

  2. Secret Manager 页面上,点击创建 Secret

  3. Secret 详情 部分,完成以下操作:

    1. 名称 字段中,输入 Secret 的名称,例如 aws-access-key-id

    2. Secret 值 部分,跳过上传文件 字段。

    3. Secret 值 字段中,输入 AWS 私有访问密钥。

  4. 跳过其余部分。

  5. 点击创建 Secret

gcloud

确保您使用的是 Google Cloud CLI 402.0.0 或更高版本。 在 Compute Engine 或 Google Kubernetes Engine (GKE) 上,您必须 使用 cloud-platform 范围进行身份验证

gcloud secrets create SECRET_NAME \
    --replication-policy="automatic" \
    --data-file="PATH_TO_AWS_SECRET_ACCESS_KEY"

替换以下内容:

  • SECRET_NAME:Secret 的名称,例如 aws-access-key-id
  • PATH_TO_AWS_SECRET_ACCESS_KEY:AWS 私有访问密钥值的路径

如需了解如何添加 Secret 版本,请参阅 添加 Secret 版本

授予 Secret Manager Access 角色

按照以下步骤向媒体 CDN 服务账号授予 Secret Manager Secret Accessor 角色 (roles/secretmanager.secretAccessor)。

控制台

  1. 在 Google Cloud 控制台中,前往 Secret Manager 页面。

    转到 Secret Manager

  2. 选择 Secret。
  3. 选择权限 ,然后选择授予访问权限 。系统会显示 授予访问权限 对话框。
  4. 添加主账号 部分,在新的主账号 字段中输入媒体 CDN 服务帐号,如下所示:
    service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

    PROJECT_NUMBER 替换为您的 项目编号。

  5. 分配角色 部分,对于选择角色 ,选择 Secret Manager ,然后选择 Secret Manager Secret Accessor
  6. 点击保存

gcloud

gcloud secrets add-iam-policy-binding \
projects/PROJECT_NUMBER/secrets/SECRET_NAME \
    --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com" \
    --role="roles/secretmanager.secretAccessor"

替换以下内容:

  • PROJECT_NUMBER:您的项目编号
  • SECRET_NAME:Secret 的名称

将媒体 CDN 配置为向外部来源存储桶进行身份验证

控制台

  1. 在 Google Cloud 控制台中,前往媒体 CDN 页面。

    转到“媒体 CDN”

  2. 点击来源 标签页。

  3. 点击要配置的来源的名称。

    系统会打开边缘缓存来源详情 页面。

  4. 点击