调用 UploadServerCertificate 操作时 (AccessDenied):用户 xxx 无权执行:iam:UploadServerCertificate

调用 UploadServerCertificate 操作时 (AccessDenied):用户 xxx 无权执行:iam:UploadServerCertificate

管理员将我添加为 IAM 用户。我创建了自签名证书(私钥+证书),并尝试通过创建新的经典负载均衡器来上传它们。

我从昨天开始就一直在尝试解决这个问题。起初,管理员给我分配了这些权限:

在此处输入图片描述 然后,他尝试自己将证书添加到负载均衡器并再次尝试:

Failed to create load balancer: Server Certificate not found for the key: 
arn:aws:iam::845477561111:server-certificate/mycertificate

最后,他给了我管理员角色,以便我可以自己添加证书,但我还是无法上传证书,因为访问被拒绝。我不明白我哪部分做错了。难道 IAM 用户无论拥有什么权限,都无法创建证书并将其添加到负载均衡器吗?

我将非常感激您的帮助

答案1

上传自签名证书是一项 IAM 功能。如果您的 IAM 用户被拒绝执行iam:UploadServerCertificateiam:*(所有 IAM 功能)的权限,那么您将无法上传证书。

IAM策略AWSCertificateManagerFullAccess不会帮助您解决此问题。此策略(以及所有“CertificateManager”策略)仅适用于 ACM 功能。

由于您的管理员已为您上传了证书,因此您在尝试创建负载均衡器时可能仍会遇到 IAM 权限问题。这是因为您没有“列出”可用证书的权限,因此 AWS 向您提供了新的错误:

无法创建负载均衡器:未找到密钥的服务器证书:arn:aws:iam :: 845477561111:server-certificate / mycertificate

要解决您的问题,您的管理员需要授予您使用 IAM 功能的权限。将此策略应用于您的用户将(希望)允许您将证书分配给负载均衡器:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "iam:GetServerCertificate",
                "iam:UpdateServerCertificate",
                "iam:ListServerCertificates",
                "iam:UploadServerCertificate"
            ],
            "Resource": "*"
        }
    ]
}

如果您的管理员您应该已经拥有这些权限,请仔细检查是否没有其他策略明确拒绝您的 IAM 权限。

还:

无论 IAM 用户拥有什么权限,他们是否都无法创建证书并将其添加到负载均衡器?

绝对不行!您不能做任何您没有被授予权限的事情。

相关内容