如何允许 s3 存储桶上的 GetBucketLocation 协议以创建 CA

Gen*_*sus 3 ca csr amazon-s3 amazon-web-services

为了更新 AWS 上的 SSL 证书,CSR 需要 CA。

当我尝试配置和创建 CA 时,我收到以下信息:

ValidationException ACM 私有 CA 服务主体“acm-pca.amazonaws.com”需要 S3 存储桶“MyBucket”的“s3:GetBucketLocation”权限。检查您的 S3 存储桶权限并重试

要继续此操作,请在 Amazon S3 > MyBucket > 权限 > 存储桶策略上进行权限设置:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::MyBucket/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

根据文档,可以在这里找到: https: //docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlocation.html

LocationConstraint是必须的。

如何解决“s3:GetBucketLocation”问题并创建 CA?

小智 5

我曾经遇到过同样的问题,不得不阅读 AWS 文档。

配置 CRL:如果您希望 ACM PCA 为您的私有 CA 吊销的证书维护一个证书吊销列表 (CRL),请配置证书吊销列表 (CRL)。

如果要创建 CRL,请执行以下操作:

  1. 选择启用 CRL 分发
  2. 要为 CRL 条目创建新的 S3 存储桶,请为创建新的 S3 存储桶选项选择是,然后输入唯一的存储桶名称。否则,选择否并从列表中选择现有存储桶。

如果您选择,ACM PCA 会为您创建必要的存储桶策略。如果您选择,请确保将以下策略附加到您的存储桶。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "acm-pca.amazonaws.com"
      },
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::your-bucket-name/*",
        "arn:aws:s3:::your-bucket-name"
      ]
    }
  ]
}

Run Code Online (Sandbox Code Playgroud)

AWS 文档