【问题标题】:How to allow GetBucketLocation promission on s3 bucket in order to create CA如何在 s3 存储桶上允许 GetBucketLocation 权限以创建 CA
【发布时间】:2019-04-22 20:07:54
【问题描述】:

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

当我尝试配置和创建 CA 时,我得到了这样的消息:

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

为此,Amazon S3 上的权限设置 > MyBucket > 权限 > 存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::MyBucket/*"
        }
    ]
}

根据文档,在此处找到: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlocation.html

LocationConstraint 为必填项。

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

【问题讨论】:

    标签: amazon-web-services amazon-s3 ca csr


    【解决方案1】:

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

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

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

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

    如果您选择Yes,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"
          ]
        }
      ]
    }
    
    

    AWS doc

    【讨论】:

      【解决方案2】:

      你需要调整你的策略,让它看起来像这样:

      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "PublicReadGetObject",
                  "Effect": "Allow",
                  "Principal": "*",
                  "Action": ["s3:GetBucketLocation"],
                  "Resource": ["arn:aws:s3:::*"]
              }
          ]
      }
      

      策略将s3:CreateBuckets3:ListAllMyBucketss3:GetBucketLocation 权限授予用户。请注意,对于所有这些权限,您将 Resource ARN 的 relative-id 部分设置为“*”。对于所有其他存储桶操作,您必须指定存储桶名称。

      你也可以指定ACM原则,以免子句太宽。

      【讨论】:

      • 导致 Policy has invalid resourceMyBucket 如上所述 Policy has invalid resource
      • 你能再试一次吗,我忘记加方括号了。我已经仔细检查过,它应该可以工作 - docs.aws.amazon.com/AmazonS3/latest/dev/…
      猜你喜欢
      • 1970-01-01
      • 2014-12-06
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2019-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多