IAM role with full privileges
이 페이지는 아직 한국어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우
언제든지 연락주시기 바랍니다.Id: b1ffa705-19a3-4b73-b9d0-0c97d0663842
Cloud Provider: AWS
Platform: Terraform
Severity: High
Category: Access Control
Learn More
Description
IAM roles with full administrative privileges (using wildcard actions like *) grant unrestricted access to AWS resources, creating a significant security risk. If compromised, these roles could be exploited to access sensitive data, modify infrastructure, or launch attacks across your entire AWS environment. Instead of using wildcard permissions in the Action field, specify only the required permissions, as shown in the secure example:
"Action": ["some:action"]
Avoid insecure patterns such as the following:
"Action": ["*"] or "Action": "*"
Compliant Code Examples
resource "aws_iam_role" "negative1" {
name = "test_role"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["some:action"],
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Effect": "Allow",
"Resource": "*",
"Sid": ""
}
]
}
EOF
tags = {
tag-key = "tag-value"
}
}
Non-Compliant Code Examples
resource "aws_iam_role" "multi_statement" {
name = "test_multi"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Safe",
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole",
"Resource": "*"
},
{
"Sid": "Vulnerable",
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "*",
"Resource": "*"
}
]
}
EOF
}
resource "aws_iam_role" "jsonencoded" {
name = "test_jsonencoded"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Sid = "JsonEncodedVulnerable"
Effect = "Allow"
Principal = { Service = "ec2.amazonaws.com" }
Action = "*"
Resource = "*"
}
]
})
}
resource "aws_iam_role" "positive1" {
name = "test_role"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["*"],
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Effect": "Allow",
"Resource": "*",
"Sid": ""
}
]
}
EOF
tags = {
tag-key = "tag-value"
}
}
resource "aws_iam_role" "positive2" {
name = "test_role2"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "*",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Effect": "Allow",
"Resource": "*",
"Sid": ""
}
]
}
EOF
tags = {
tag-key = "tag-value"
}
}