如何查明某个 CloudFront 分配属于哪个 AWS 账户?

2 分钟阅读
0

我想找到 Amazon CloudFront 分配所属的 AWS 账户。我该如何操作?

简短描述

要查找有关分配所属的 AWS 账户的信息,请使用 ListConflictingAliases 命令获取有关 AWS 账户的信息。

首先,创建一个新的 CloudFront 分配并与 SSL 证书关联。此 SSL 证书必须涵盖与您尝试查找其 AWS 账户的 CloudFront 分配关联的域。

然后,使用新分配的 ID 和与您要查找的分配关联的备用域名运行 ListConflictingAliases 命令。

注意:要使用此方法,分配必须具有与其关联的备用域名。如果您尝试查找的 CloudFront 分配没有关联的备用域名,请联系 AWS Support

解决方法

创建 CloudFront 分配

创建一个新的 CloudFront 分配,并确保:

  • 关联一个 SSL 证书,该证书涵盖与您要查找其 AWS 账户的 CloudFront 分配关联的域。
  • 不要指定备用域名中的域名。 此字段中的值会导致 "CNAME already exists" 错误。

如果您不想创建新的分配,则可以使用自定义 SSL 证书更新现有的 CloudFront 分配

运行 ListConflictingAliases 命令

注意:ListConflictingAliases 命令需要 GetDistributionListConflictingAliases 权限。要验证所有权,您必须拥有对 YourDistributionID 的读取权限。您还必须有一个关联的证书来保障冲突 CNAME 的安全。

1.    在您所创建分配的 AWS Identity and Access Management (IAM) 策略中,向发出 API 请求的 IAM 用户或角色添加以下资源级权限。

对于 DISTRIBUTION-ID,请输入您创建的新分配的 ID。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "CloudFrontCnameSwapCrossAcc",
      "Effect": "Allow",
      "Action": [
                "cloudfront:GetDistribution",
                "cloudfront:ListConflictingAliases"
      ],
      "Resource": [
        "arn:aws:cloudfront::123456789:distribution/DISTRIBUTION-ID"
      ]
    }
  ]
}

2.    验证新分配是否具有有效的证书。

3.    运行 ListConflictingAliases 命令:

$ aws cloudfront list-conflicting-aliases --distribution-id YourDistributiontID --alias YourCNAME

对于 YourDistributionId,请输入在您的 AWS 账户中创建的新分配的 ID。对于 YourCNAME,请输入与您尝试查找的 CloudFront 分配关联的别名(备用域名)。

4.    输出提供了 CloudFront 分配的列表以及与您在 ListConflictingAliases 命令中输入的别名冲突的关联账户 ID。
--alias 参数中的域名与您正在尝试查找的 CloudFront 分发相关联。输出中还列出了与分配 ID 关联的 AWS 账户 ID。
例如:

$ aws cloudfront list-conflicting-aliases --distribution-id EABCDSXK9UXYZ --alias www.example.com
{
  "ConflictingAliasesList": {
    "MaxItems": 100,
    "Quantity": 1,
    "Items": [
      {
        "Alias": "www.example.com",
        "DistributionId": "*******NOOCXYZ",
        "AccountId": "******091234"
      }
    ]
  }
}

注意:通过 API 网关中优化的 API 端点创建的 CloudFront 分配或 AWS Amplify 受管之托管由 AWS 托管账户进行管理。在这种情况下,输出中的 AWS 账户 ID 与 AWS 托管账户相关。为 API Gateway 中经过边缘优化的 API 端点创建的 CloudFront 分配可以通过区域特定 API Gateway 账户 ID 进行识别。有关区域特定 API Gateway 账户 ID 的完整列表,请参阅在 CloudTrail 中记录自定义域名的创建


AWS 官方
AWS 官方已更新 2 年前