대상 리소스에 대한 Application Auto Scaling API 호출에 대한 권한 검증 - Application Auto Scaling

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

대상 리소스에 대한 Application Auto Scaling API 호출에 대한 권한 검증

Application Auto Scaling API 작업에 대해 승인된 요청을 하려면 API 호출자에게 대상 서비스 및 내부 AWS 리소스에 액세스할 수 있는 권한이 있어야 합니다. CloudWatch Application Auto Scaling은 요청을 CloudWatch 진행하기 전에 대상 서비스와 관련된 요청에 대한 권한을 검증합니다. 이를 위해 대상 리소스에 대한 IAM 권한을 검증하기 위한 일련의 호출을 실행합니다. 응답이 반환되면 Application Auto Scaling이 읽습니다. IAM권한이 지정된 작업을 허용하지 않는 경우 Application Auto Scaling은 요청에 실패하고 누락된 권한에 대한 정보가 포함된 오류를 사용자에게 반환합니다. 이렇게 하면 사용자가 배포하려는 조정 구성이 의도한 대로 작동하고 요청이 실패하면 유용한 오류가 반환됩니다.

작동 방식의 예로, 다음 정보는 Application Auto Scaling에서 CloudWatch Aurora 및 를 사용하여 권한 검증을 수행하는 방법에 대한 세부 정보를 제공합니다.

사용자가 Aurora DB RegisterScalableTarget API 클러스터에 대해 를 호출하면 Application Auto Scaling은 다음 검사를 모두 수행하여 사용자에게 필요한 권한이 있는지 확인합니다 (굵게 표시).

  • RDS:c reateDBInstance: 사용자에게 이 권한이 있는지 확인하기 위해 CreateDBInstance API 작업에 요청을 보내 사용자가 지정한 Aurora DB 클러스터에서 잘못된 파라미터 (빈 인스턴스 ID) 를 가진 DB 인스턴스를 만들려고 합니다. 인증된 사용자의 경우 요청을 감사한 후 InvalidParameterValue 오류 코드 응답을 API 반환합니다. 그러나 권한이 없는 사용자의 경우 AccessDenied 오류가 발생하고 Application Auto Scaling 요청에 실패합니다. 누락된 권한이 나열된 ValidationException 오류가 사용자에게 제공됩니다.

  • RDS:D eleteDBInstance: 빈 인스턴스 ID를 작업에 보냅니다. DeleteDBInstance API 권한이 부여된 사용자의 경우 이 요청으로 InvalidParameterValue 오류가 발생합니다. 권한이 없는 사용자의 경우 AccessDenied가 발생하고 사용자에게 유효성 검사 예외를 보냅니다(첫 번째 글머리 기호에 설명된 것과 동일한 처리).

  • rds: AddTagsToResource: AddTagsToResource API 작업에는 Amazon 리소스 이름 (ARN) 이 필요하므로 잘못된 계정 ID (12345) 와 더미 인스턴스 ID () 를 사용하여 “더미” 리소스를 지정하여 (non-existing-db) 를 생성해야 합니다. ARN arn:aws:rds:us-east-1:12345:db:non-existing-db 권한이 부여된 사용자의 경우 이 요청으로 InvalidParameterValue 오류가 발생합니다. 권한이 없는 사용자의 경우 AccessDenied가 발생하고 사용자에게 유효성 검사 예외를 보냅니다.

  • RDS:d escribeDBCluster: Auto Scaling에 등록되는 리소스의 클러스터 이름을 설명합니다. 권한이 부여된 사용자의 경우 유효한 설명 결과를 얻습니다. 권한이 없는 사용자의 경우 AccessDenied가 발생하고 사용자에게 유효성 검사 예외를 보냅니다.

  • escribeDBInstanceRDS:D. 확장 DescribeDBInstance API 가능한 대상을 등록하기 위해 사용자가 제공한 클러스터 이름을 db-cluster-id 기준으로 필터링하는 필터를 사용하여 를 호출합니다. 권한이 부여된 사용자의 경우 DB 클러스터의 모든 DB 인스턴스를 설명할 수 있습니다. 권한이 없는 사용자의 경우 이 호출로 AccessDenied가 발생하고 사용자에게 유효성 검사 예외를 보냅니다.

  • cloudwatch:PutMetricAlarm: 매개 변수 PutMetricAlarm API 없이 를 호출합니다. 경보 이름이 누락되기 때문에 요청으로 권한이 부여된 사용자에게 ValidationError가 발생합니다. 권한이 없는 사용자의 경우 AccessDenied가 발생하고 사용자에게 유효성 검사 예외를 보냅니다.

  • cloudwatch: DescribeAlarms: 최대 레코드 수 값을 DescribeAlarms API 1로 설정하여 를 호출합니다. 권한 있는 사용자의 경우 응답에서 하나의 경보에 대한 정보가 예상됩니다. 권한이 없는 사용자의 경우 이 호출로 AccessDenied가 발생하고 사용자에게 유효성 검사 예외를 보냅니다.

  • cloudwatch: DeleteAlarms: PutMetricAlarm 위와 마찬가지로 요청할 매개 변수를 제공하지 않습니다. DeleteAlarms 요청에서 경보 이름이 누락되었기 때문에 이 호출은 권한이 부여된 사용자에 대해 ValidationError로 실패합니다. 권한이 없는 사용자의 경우 AccessDenied가 발생하고 사용자에게 유효성 검사 예외를 보냅니다.

이러한 유효성 검사 예외 중 하나가 발생할 때마다 기록됩니다. 를 사용하여 검증에 실패한 호출을 수동으로 식별하는 조치를 취할 수 있습니다. AWS CloudTrail자세한 내용은 AWS CloudTrail 사용 설명서를 참조하십시오.

참고

를 사용하여 CloudTrail Application Auto Scaling 이벤트에 대한 알림을 받는 경우 이러한 알림에는 기본적으로 사용자 권한을 검증하기 위한 Application Auto Scaling 호출이 포함됩니다. 이러한 알림을 필터링하려면 이러한 유효성 검사를 위한 application-autoscaling.amazonaws.com을 포함할 invokedBy 필드를 사용합니다.