IAM Access Analyzer 오류 결과

IAM Access Analyzer 오류 결과

IAM Access Analyzer가 특정 리소스나 주체-리소스 쌍에 대한 분석을 완료하지 못하면 오류 결과를 생성합니다. 이 문서에서는 외부·내부 접근 오류 결과의 유형과 해결 방법을 예시 JSON과 함께 설명합니다.

출처: 문서

본문

IAM Access Analyzer가 리소스를 분석할 때는 일반적으로 누가 리소스에 접근할 수 있는지 보여 주는 결과를 생성합니다. 하지만 어떤 경우에는 분석기가 분석을 완료하지 못하게 하는 문제가 발생할 수 있어요. 이런 상황에서 IAM Access Analyzer는 대신 오류 결과(error findings) 를 생성합니다.

오류 결과는 IAM Access Analyzer가 특정 리소스나 특정 주체-리소스 쌍에 대한 분석을 완료하지 못했음을 나타냅니다. 이 결과는 적절한 분석을 위해 주의가 필요할 수 있는 리소스를 식별하는 데 도움을 줍니다.

외부 접근 오류 결과

계정·조직 밖으로 공유되는 리소스를 식별하는 외부 접근 분석기는 두 가지 유형의 오류 결과를 생성할 수 있습니다.

  • INTERNAL_ERROR — IAM Access Analyzer가 리소스를 분석하는 동안 내부 문제가 발생했음을 나타냅니다. 서비스 제한이나 일시적 문제 때문일 수 있어요.
{
	"findingDetails": [
		{
			"externalAccessDetails": {}
		}
	],
	"resource": "arn:aws:iam::941407043048:role/TestAccessAnalyzer",
	"status": "ACTIVE",
	"error": "INTERNAL_ERROR",
	"createdAt": "2022-07-14T01:31:43.085000+00:00",
	"resourceType": "AWS::IAM::Role",
	"findingType": "ExternalAccess",
	"resourceOwnerAccount": "941407043048",
	"analyzedAt": "2025-03-19T06:51:46.109000+00:00",
	"id": "4b035c7d-b7d2-40e4-a6c3-9887d1a995df",
	"updatedAt": "2022-07-14T01:31:43.085000+00:00"
}
  • ACCESS_DENIED — IAM Access Analyzer에 리소스를 분석하는 데 필요한 권한이 없음을 나타냅니다. 일반적으로 IAM Access Analyzer의 서비스 연결 역할(SLR)이 리소스에 대한 접근을 거부당할 때 발생합니다.
{
	"findingDetails": [
		{
			"externalAccessDetails": {}
		}
	],
	"resource": "arn:aws:kms:us-west-2:941407043048:key/01cae123-b7f2-4488-9a05-0070a072ea2c",
	"status": "ACTIVE",
	"error": "ACCESS_DENIED",
	"createdAt": "2022-07-14T01:31:43.104000+00:00",
	"resourceType": "AWS::KMS::Key",
	"findingType": "ExternalAccess",
	"resourceOwnerAccount": "941407043048",
	"analyzedAt": "2025-03-19T06:51:46.090000+00:00",
	"id": "7ef6f04a-9d2c-4038-9cc0-2a5f00a4d8f8",
	"updatedAt": "2022-07-14T01:31:43.104000+00:00"
}

내부 접근 오류 결과

계정·조직 내 접근을 식별하는 내부 접근 분석기는 네 가지 유형의 오류 결과를 생성할 수 있습니다.

  • PRINCIPAL_LIMIT_EXCEEDED — 중요 리소스에 3,000개가 넘는 주체가 접근할 때 생성됩니다. 이 오류는 지나치게 광범위한 접근이 있어 제한이 필요할 수 있는 리소스를 식별하는 데 도움을 줍니다. 환경의 리소스·주체를 변경해 주체 수를 한도 아래로 줄이면, 분석기는 다음 스캔에서 정상 결과를 생성하고 오류 결과는 해결됨으로 표시됩니다.
{
	"id": "efec28fe-b304-412f-af0f-704d0d70c79c",
	"status": "ACTIVE",
	"error": "PRINCIPAL_LIMIT_EXCEEDED",
	"resource": "arn:aws:s3:::critical-data",
	"resourceType": "AWS::S3::Bucket",
	"resourceOwnerAccount": "111122223333",
	"createdAt": "2023-11-30T00:56:56.437000+00:00",
	"analyzedAt": "2024-03-06T04:11:54.406000+00:00",
	"updatedAt": "2023-11-30T00:56:56.437000+00:00",
	"findingType": "InternalAccess",
	"findingDetails": [
		{
			"internalAccessDetails": {}
		}
	]
}
  • 리소스 수준 오류(INTERNAL_ERROR 또는 ACCESS_DENIED) — 외부 접근 오류와 유사하게, 내부 문제나 권한 문제로 분석기가 특정 리소스를 분석하지 못했음을 나타냅니다. 리소스 수준 오류가 발생하면 분석기는 정상 결과 대신 리소스에 대한 단일 오류 결과를 생성합니다.
{
	"id": "efec28fe-b304-412f-af0f-704d0d70c79c",
	"status": "ACTIVE",
	"error": "INTERNAL_ERROR", // can be INTERNAL_ERROR or ACCESS_DENIED
	"resource": "arn:aws:s3:::critical-data",
	"resourceType": "AWS::S3::Bucket",
	"resourceOwnerAccount": "111122223333",
	"createdAt": "2023-11-30T00:56:56.437000+00:00",
	"analyzedAt": "2024-03-06T04:11:54.406000+00:00",
	"updatedAt": "2023-11-30T00:56:56.437000+00:00",
	"findingType": "InternalAccess",
	"findingDetails": [
		{
			"internalAccessDetails": {}
		}
	]
}
  • 주체 수준 오류(INTERNAL_ERROR 또는 ACCESS_DENIED) — 분석기가 특정 리소스에 대한 특정 주체의 접근을 분석하지 못했음을 나타냅니다. 리소스 수준 오류와 달리, 리소스는 일부 주체에 대한 정상 결과와 다른 주체에 대한 오류 결과를 동시에 가질 수 있습니다.
{
	"id": "efec28fe-b304-412f-af0f-704d0d70c79c",
	"status": "ACTIVE",
	"error": "INTERNAL_ERROR", // can be INTERNAL_ERROR or ACCESS_DENIED
	"resource": "arn:aws:s3:::critical-data",
	"resourceType": "AWS::S3::Bucket",
	"resourceOwnerAccount": "111122223333",
	"createdAt": "2023-11-30T00:56:56.437000+00:00",
	"analyzedAt": "2024-03-06T04:11:54.406000+00:00",
	"updatedAt": "2023-11-30T00:56:56.437000+00:00",
	"findingType": "InternalAccess", 
	"findingDetails": [
		{
			"internalAccessDetails": {
				"principal": {
					"AWS": "arn:aws:iam::111122223333:role/MyRole_1"
				},
				"principalOwnerAccount": "111122223333",
				"principalType": "IAM_ROLE",
				"accessType": "INTRA_ACCOUNT"
			}
		}
	]
}
  • PRINCIPAL_ERRORS_LIMIT_EXCEEDED — 단일 리소스에 대한 주체 수준 오류 결과가 너무 많을 때 생성됩니다. 같은 리소스의 정상 결과와 함께 나타날 수 있는 리소스 수준 오류 결과입니다.
{
	"id": "efec28fe-b304-412f-af0f-704d0d70c79c",
	"status": "ACTIVE",
	"error": "PRINCIPAL_ERRORS_LIMIT_EXCEEDED",
	"resource": "arn:aws:s3:::critical-data",
	"resourceType": "AWS::S3::Bucket",
	"resourceOwnerAccount": "111122223333",
	"createdAt": "2023-11-30T00:56:56.437000+00:00",
	"analyzedAt": "2024-03-06T04:11:54.406000+00:00",
	"updatedAt": "2023-11-30T00:56:56.437000+00:00",
	"findingType": "InternalAccess",
	"resourceControlPolicyRestriction": "NOT_APPLICABLE",
	"serviceControlPolicyRestriction": "NOT_APPLICABLE",
	"findingDetails": [
		{
			"internalAccessDetails": {}
		}
	]
}

오류 결과 해결

IAM Access Analyzer가 리소스를 분석하지 못하게 한 문제를 해결하면, 오류 결과는 해결된 결과로 바뀌는 대신 완전히 제거됩니다.

오류 결과를 해결하려면 오류 유형에 따라 다음 접근 방식을 고려하세요.

  • ACCESS_DENIED 오류의 경우 IAM Access Analyzer 서비스 연결 역할이 리소스에 접근하는 데 필요한 권한을 갖고 있는지 확인하세요.
  • PRINCIPAL_LIMIT_EXCEEDED 오류의 경우 리소스의 접근 정책을 검토하고 더 적은 주체로 접근을 제한하는 것을 고려하세요.
  • INTERNAL_ERROR 결과의 경우 후속 분석 주기를 기다리거나, 문제가 지속되면 AWS 지원에 문의해야 할 수 있어요.
  • PRINCIPAL_ERRORS_LIMIT_EXCEEDED의 경우 영향을 받는 리소스의 접근 패턴을 검토하고 단순화할 수 있습니다.

근본 문제를 해결하도록 변경한 후 IAM Access Analyzer는 다음 스캔 주기에서 리소스를 다시 분석하려고 시도합니다.

더 알아보기 (Learn more)