我创建了一个新用户,我只想访问有限数量的资源,主要是从S3读取。
出于某种原因,如果我向IAM用户提供AdministratorAccess策略,它将只从s3桶中读取。这是命令
aws s3 cp s3://my-bucket/my-config.json my-config.json
AmazonS3ReadOnlyAccess出错:
download failed: s3://my-bucket/my-config.json to ./my-config.json An error occurred (AccessDenied) when calling the GetObject operation: Access Denied
但是当我添加AdministratorAccess时,它会正确地复制文件。
AmazonS3ReadOnlyAccess也可以访问所有资源上的GetObject
操作。有谁知道为什么我会看到这种行为?
这里的问题与用于加密存储桶中对象的加密密钥有关。我正在使用KMS加密(静态)来处理此S3存储桶中的对象。我创建的新用户尚未添加到Key Users
以获取此特定KMS密钥。这阻止了用户在S3中的GetObject
操作期间使用此密钥解密对象。因此,具体而言,失败的行为给出了(不那么明确的)错误消息。
要解决此问题:将IAM用户添加为KMS下的关键用户,现在一切正常。唷..