IAM을 사용하여 사용자가 AWS / EC2 보안 그룹을 편집 할 수 있습니까? 편집 할 수있는 기능을

EC2 보안 그룹을 편집 할 수있는 기능을 IAM 그룹에 부여하려고하는데 EC2의 모든 항목에 대한 액세스 권한을 부여하지 않으면이 작업을 수행 할 수 없습니다.

나는 이것의 여러 버전을 시도했다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1392336685000",
      "Effect": "Allow",
      "Action": [
        "ec2:*"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:<MYACCOUNTHERE>:security-group/*"
      ]
    }
  ]
}

그러나 IAM 사용자로 로그인하면 보안 그룹 페이지에 “이 작업을 수행 할 권한이 없습니다”라는 메시지가 나타납니다.

“Amazon EC2 Full Access”에 대한 IAM 정책 템플릿을 선택하면 사용자가 EC2의 모든 항목에 액세스 할 수 있기 때문에 사용자 / 그룹이 작동하고 있음을 알고 있습니다.

분명히 IAM에 대한 경험이 많지 않으므로 도움을 주시면 감사하겠습니다.



답변

이것이 작동하려면 다음을 명시 적으로 허용해야합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1392679134000",
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:CreateSecurityGroup",
        "ec2:DeleteSecurityGroup",
        "ec2:DescribeInstanceAttribute",
        "ec2:DescribeInstanceStatus",
        "ec2:DescribeInstances",
        "ec2:DescribeNetworkAcls",
        "ec2:DescribeSecurityGroups",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

위의 JSON 정책은 기본적으로 사용자에게만 위의 액세스 권한이 있음을 명시합니다. 그들은 다른 것에 접근 할 수 없습니다. 여기에는 EC2 인스턴스, S3, IAM, 클라우드 프론트 등이 포함됩니다.


답변

단일 보안 그룹으로 편집을 제한하려면 다음과 같은 두 가지 진술이 필요하다고 생각합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1413232782000",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstanceAttribute",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeInstances",
                "ec2:DescribeNetworkAcls",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "Stmt1413232782001",
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:<accountid>:security-group/sg-<id>"
            ]
        }
    ]
}

DescribeInstance가 필요하지 않을 수도 있지만 필자의 경우에는 원했기 때문에 테스트하지 않았습니다.


답변

보안 그룹이 인스턴스 또는 다른 EC2 리소스에서 사용중인 것 같습니다. 너 시도 할 수있어:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1392336685000",
      "Effect": "Allow",
      "Action": [
        "ec2:*"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:<MYACCOUNTHERE>:instance/*",
        "arn:aws:ec2:us-east-1:<MYACCOUNTHERE>:security-group/*"
      ]
    }
  ]
}


답변

나는에 대한 답을 찾고 있었다 질문 것으로 @ nsij22이 허용 대답의 의견에 물었다. 불행히도 불가능한 것 같습니다. IAM Policy Simulator 에 따르면 @ DevMan14 의 답변 에서 다음 작업 만 특정 리소스와 함께 사용할 수 있습니다.

  • DeleteSecurityGroup
  • AuthorizationSecurityGroupEgress
  • AuthorizationSecurityGroupIngress
  • RevokeSecurityGroupEgress
  • RevokeSecurityGroupIngress

다른 모든 것의 경우 IAM 정책 시뮬레이터는 다음과 같이 말합니다.

이 조치는 자원 레벨 권한을 지원하지 않습니다. 액세스 권한을 부여하는 정책은 자원 요소에 “*”를 지정해야합니다.

다음과 같이 보입니다 :

스크린 샷.

“허용”과 “거부”는 모두 동일하므로 축소했습니다.


답변