Curl ELI5:如何授予单个用户对S3存储桶的完全访问权限?
我已经阅读了大量的AWS文档,并尝试了几十种示例配置,但我唯一能够成功使用的AWS策略是允许所有人完全访问S3存储桶的策略。这太可怕了 单用户完全访问场景: 以下是设置:Curl ELI5:如何授予单个用户对S3存储桶的完全访问权限?,curl,amazon-web-services,amazon-s3,amazon-iam,Curl,Amazon Web Services,Amazon S3,Amazon Iam,我已经阅读了大量的AWS文档,并尝试了几十种示例配置,但我唯一能够成功使用的AWS策略是允许所有人完全访问S3存储桶的策略。这太可怕了 单用户完全访问场景: 以下是设置: AWS用户jenkins,不属于任何组或角色 包含jenkins AWS_密钥和AWS_访问密钥的服务器 全新的空S3存储桶,使用默认权限记录 问题是是否可以使用与jenkins用户关联的凭据使用curl来实现以下操作: 将包含短语“hello,world”的文本文件foo上载到notes 从notes下载文本文件foo 获取
curl
来实现以下操作:
foo
上载到notesfoo
curl
命令然而,像“使用SDK X”或“下载工具Y”这样的解决方案很好,但最终没有帮助,像“您在这里真正想做什么,也许有一个更简单的方法”这样的解决方案将遇到一个涉及本节的评论。感谢您理解,我只需要3条curl语句,以及针对此场景的S3 ACL和IAM策略的解释。实现这一点需要两个部分:构建请求和在S3存储桶上设置正确的策略 简单的部分:对于构建bucket策略,您可以使用
您可以在此处看到示例: 用于生成请求。构建请求需要做很多工作,其中最具挑战性的部分是对请求进行签名。您将无法仅使用curl,但您可以不使用sdk就离开。以下是您发布最终卷曲所需的所有事项的示例:
最后你会看到最后的卷曲。别忘了更新s3(例如SQS,但如果你不想或不能使用sdk,这基本上就是所有需要完成的繁重工作)。我正在寻找一个地方来分享这个解决方案,以解决我自己的难题,因为它部分符合你的问题 我认为aws策略生成器是新手,不友好。我被大量的
访问被拒绝
,我不明白为什么。在我看来,这是一条非建设性的信息,因为它没有说明您违反了什么政策。原来lib还设置了上传文件的公共读取权限,即ACL。长话短说,我错过了PutObjectACL。下面是一些使用AWS IAM设置单个S3存储桶访问的示例,不允许访问任何其他存储桶
服务器策略
ie IAM用户myapp登台
{
“版本”:“2012-10-17”,
“声明”:[
{
“效果”:“允许”,
“行动”:[
“s3:ListBucket”,
“s3:ListMultipartPloadParts”,
“s3:GetBucketLocation”
],
“资源”:[
“arn:aws:s3:::myappbucket暂存”
]
},
{
“效果”:“允许”,
“行动”:[
“s3:PutObject”,
“s3:PutObjectAcl”
],
“资源”:[
“arn:aws:s3:::myappbucket暂存/*”
]
}
]
}
人类政策 这里有一个策略,供人类IAM用户使用AWS S3控制台或其他S3查看器来验证上传的内容,而不公开其他bucket的内容(它会列出bucket名称,但不知道如何限制,我也不在乎) IAM用户myuser与策略MyappTeamPolicy:
{
“版本”:“2012-10-17”,
“声明”:[
{
“效果”:“允许”,
“行动”:[
“s3:ListAllMyBucket”
],
“资源”:[
“arn:aws:s3::*”
]
},
{
“效果”:“允许”,
“行动”:[
“s3:ListBucket”,
“s3:ListMultipartPloadParts”,
“s3:GetBucketLocation”
],
“资源”:[
“arn:aws:s3:::myappbucket”,
“arn:aws:s3:::myappbucket暂存”
]
},
{
“效果”:“允许”,
“行动”:[
“s3:PutObject”,
“s3:PutObjectAcl”,
“s3:GetObject”,
“s3:GetObjectAcl”,
“s3:ListMultipartPloadParts”,
“s3:DeleteObject”
],
“资源”:[
“arn:aws:s3:::myappbucket/*”,
“arn:aws:s3:::myappbucket暂存/*”
]
}
]
}
看来您实际上并没有阅读该问题。感谢您提供指向用于签名标题的bash脚本的指针。那很有帮助。关于策略:我已经通读了策略生成器,但是使用该策略生成器生成一个有效的用户特定访问策略失败。你有一个你愿意分享的吗?