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 정책 시뮬레이터는 다음과 같이 말합니다.
이 조치는 자원 레벨 권한을 지원하지 않습니다. 액세스 권한을 부여하는 정책은 자원 요소에 “*”를 지정해야합니다.
다음과 같이 보입니다 :
“허용”과 “거부”는 모두 동일하므로 축소했습니다.