gpt4 book ai didi

amazon-web-services - AWS S3 IAM 角色策略,用于根据实例标签或实例 ID 限制少数实例连接到 S3 存储桶

转载 作者:行者123 更新时间:2023-12-02 09:28:15 26 4
gpt4 key购买 nike

我有一个 AWS S3 已经与所有实例相关联,以获得对所有 S3 存储桶的读取权限。现在我需要向角色添加写入权限策略(Put 对象),以便其中一些实例可以对 S3 中的某些文件夹具有写入权限。有没有办法通过实例标签(对我来说更好的选择)或实例 ID 来实现它。

我尝试添加 IAM 策略,但当我设置条件时,我的实例没有获得所需的权限。

我使用的 IAM 策略是:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1456567757624",
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": "arn:aws:s3:::testbucket/testfolder1/*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:ec2:eu-west-1:<accountno>:instance/<instanceid1>"
}
}
},
{
"Sid": "Stmt1456567757625",
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": "arn:aws:s3:::testbucket/testfolder2/*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:ec2:eu-west-1:<accountno>:instance/<instanceid2>"
}
}
}
]
}

最佳答案

这是一个替代方案,基于 Granting access to S3 resources based on role name 中给出的提示...

不要使用 aws:SourceArn,而是使用 aws:userid!

Request Information That You Can Use for Policy Variables文档中有一个表格显示了 aws:userid 的各种值,包括:

For Role assigned to an Amazon EC2 instance, it is set to role-id:ec2-instance-id

因此,您可以使用用于启动 Amazon EC2 实例以允许访问的角色的角色 ID实例 ID

例如,这个基于角色ID:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SID123",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"*"
],
"Condition": {
"StringLike": {
"aws:userid": [
"AROAIIPEUJOUGITIU5BB6*"
]
}
}
}
]
}

当然,如果您要根据角色 ID 分配权限,那么您可以在角色本身内轻松地授予权限。

这个基于实例 ID:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SID123",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"*"
],
"Condition": {
"StringLike": {
"aws:userid": [
"*:i-03c9a5f3fae4b630a"
]
}
}
}
]
}

实例 ID 将保留在实例中,但如果启动新实例,即使来自相同的 Amazon 系统镜像 (AMI),也会分配一个新实例。

关于amazon-web-services - AWS S3 IAM 角色策略,用于根据实例标签或实例 ID 限制少数实例连接到 S3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35718371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com