Amazon web services AWS IAM SSM-限制实例可以运行的文档

Amazon web services AWS IAM SSM-限制实例可以运行的文档,amazon-web-services,amazon-ec2,Amazon Web Services,Amazon Ec2,有没有办法限制EC2实例s.t的IAM策略。它只能运行一个简短的文档列表-我尝试过像这样限制对ssm:GetDocument的访问: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetDocument" ], "Resource": [ "arn:aws:

有没有办法限制EC2实例s.t的IAM策略。它只能运行一个简短的文档列表-我尝试过像这样限制对ssm:GetDocument的访问:

{
  "Version": "2012-10-17",
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ssm:GetDocument"
        ],
        "Resource": [
            "arn:aws:ssm:ap-southeast-2:*:document/MyCommand"
        ]
    }
 ]}
但是我可以在实例上运行任何命令,仍然包括AWS RunPowershellScript文档

此链接显示了如何限制用户使用ssm:sendCommand:

我还没有找到基于文档限制SendCommand的方法。如果用户没有访问权限,则会出现如下错误:

{
  "Version": "2012-10-17",
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ssm:GetDocument"
        ],
        "Resource": [
            "arn:aws:ssm:ap-southeast-2:*:document/MyCommand"
        ]
    }
 ]}
用户:arn:aws:iam::123456789012:用户/用户名无权对资源执行:ssm:SendCommand:arn:aws:ec2:us-east-1:123456789012:instance/i-01234567890abcdef

这表示SendCommand中的资源可以根据实例ID进行限制。如果其中一个条件是文档ARN就好了,但到目前为止,我还没有找到任何方法来实现它(这不是策略生成器向导中的条件)

更新:我在AWS论坛上发布了这个问题,希望能得到回复:

更新2:我得到了一个响应,解决方案是,要实现这一点,您必须使用资源来指定允许在哪些实例上运行命令,以及允许用户运行哪些文档。例如,这就是我的结局:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:*:123456789012:instance/*",
                "arn:aws:ssm:*:123456789012:document/RestartServices"
            ]
        }
    ]
}