IAM 역할의 계정 단위 신뢰 점검

계정에 위임한 역할 사용 범위가 실제 요구사항에 맞는지 확인하세요.

설명

신뢰 정책의 계정 root ARN은 해당 계정에 역할 사용 권한을 위임하는 방식입니다. 루트 사용자만 뜻하거나 모든 AWS 계정에 공개한다는 의미는 아닙니다. 교차 계정 호출자는 자신의 계정에서도 역할을 사용할 권한이 필요합니다.

계정 단위 위임이 필요하지 않다면 실제 호출 역할로 범위를 좁히세요. 필요한 계정 위임은 사용 목적과 조건을 명확히 하고, 역할이 수행할 작업은 별도의 권한 정책에서 제한해야 합니다.

잠재적 영향

  • 위임받은 계정에서 예상보다 많은 주체에 호출 권한을 주면 의도하지 않은 역할 사용이 가능해질 수 있습니다.
  • 외부 계정 침해나 과도한 역할 권한은 위임한 리소스의 피해를 키울 수 있습니다.

해결 방법

  • 신뢰할 특정 역할 ARN을 지정하거나, 계정 단위 위임이 필요한 이유와 실제 권한 부여 범위를 확인하세요.
  • 필요한 STS 작업과 사용 조건만 허용하고 교차 계정 연동에 맞는 추가 통제를 적용하세요.
  • 호출자 측 권한과 역할의 업무 권한을 함께 검토하며 정상 역할 사용과 미승인 사용의 거부를 확인하세요.

예시

같은 역할의 신뢰 대상을 좁히는 발췌입니다. 계정·역할 ARN과 이름 변수는 실제 값으로 바꾸고 호출 역할을 먼저 준비하세요. 로그를 쓰는 실제 권한은 별도 정책에서 부여해야 합니다.

변경 전

hcl
resource "aws_iam_role" "example" {
  name        = "${var.name_tag_prefix}-openshift-instance-forward-logs"
  path        = "/"
  description = "Allows an instance to forward logs to CloudWatch"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:root"
      },
      "Effect": "Allow",
      "Action": "sts:AssumeRole"
    }
  ]
}
EOF
}

특정 계정에 역할 사용을 위임합니다. 그 자체로 모든 주체의 접근을 뜻하지는 않지만 계정 내 위임 범위를 검토해야 합니다.

변경 후

hcl
resource "aws_iam_role" "example" {
  name        = "${var.name_tag_prefix}-openshift-instance-forward-logs"
  path        = "/"
  description = "Allows an instance to forward logs to CloudWatch"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/log-forwarder"
      },
      "Effect": "Allow",
      "Action": "sts:AssumeRole"
    }
  ]
}
EOF
}

같은 역할에서 지정한 log-forwarder 역할만 신뢰합니다. 허용할 실제 호출 경로와 별도의 로그 작업 권한을 확인하세요.

참조