首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS SSM IAM访问问题

AWS SSM IAM访问问题
EN

Stack Overflow用户
提问于 2022-03-01 09:45:52
回答 1查看 2.4K关注 0票数 1

我的用户通过SSM连接到我的AWS EC2实例。这些实例没有公共IP,也没有跳转主机,因此无法直接连接。

每个EC2实例都有一个名称标记,我希望IAM策略受到标记名称的限制。由于多种原因,通过实例ID限制是不可行的。

NAME服务器上的ec2标记是client-name。这里,ec2 2的策略可以很好地使用来限制对实例的访问。我可以通过控制台看到这个。然而,SSM策略似乎不起作用,我已经做了100多个改变,试图使它工作。我一直看到下面的错误。会很感激你的帮助。

代码语言:javascript
复制
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Name": "client-name"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ssm:*",
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ssm:*:*:document/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Name": "client-name"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "ec2:DeleteTags",
                "ec2:CreateTags"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        }
    ]
}

名为testuser_delme2的用户使用以下命令进行连接,错误如下:

代码语言:javascript
复制
aws ssm start-session --target i-003000333337777c7 --document-name AWS-StartPortForwardingSession --parameters portNumber="3389",localPortNumber="3389"

错误:

代码语言:javascript
复制
An error occurred (AccessDeniedException) when calling the StartSession operation: User: arn:aws:iam::222666555000:user/testuser_delme2 is not authorized to perform: ssm:StartSession on resource: arn:aws:ssm:ap-southeast-1::document/AWS-StartPortForwardingSession because no identity-based policy allows the ssm:StartSession action
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-07 10:25:50

好吧,我找出了问题,然后把它发到这里,以防它对别人有帮助。由于一些奇怪的原因,ssm启动会话的工作方式与其他SSM命令不同。

这是正确的方法:

代码语言:javascript
复制
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["ec2:*","ssm:StartSession"],
            "Resource": "*",
            "Condition": {"StringEquals": {"aws:ResourceTag/Name": "client-name"}}
        },
        {
            "Effect": "Deny",
            "Action": ["ec2:DeleteTags", "ec2:CreateTags"],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": ["ec2:DescribeInstances", "s3:ListAllMyBuckets", "kms:*"],
            "Resource": "*"
        },
        {
         "Effect": "Allow",
         "Action": "ssm:*",
         "Resource": "arn:aws:ssm:*:*:*"
        },
        {
         "Effect":"Allow",
         "Action":["ssm:SendCommand"],
         "Resource":["arn:aws:ec2:*:*:instance/*"],
         "Condition": {"StringEquals": {"aws:ResourceTag/Name": "client-name"}}
        }
    ]
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71306504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档