DescribeStacks API를 호출할 때 발생하는 액세스 거부됨 오류를 해결하려고 합니다.
간략한 설명
DescribeStacks AWS Command Line Interface(AWS CLI) 명령을 실행할 때 다음과 같은 오류가 나타날 수 있습니다.
"An error occurred (AccessDenied) when calling the DescribeStacks operation: User: arn:aws:sts::#AccountId:assumed-role/#RoleName/xxx is not authorized to perform: cloudformation:ListStacks on resource: arn:aws:cloudformation:us-east-1:#AccountId:stack/*/* because no identity-based policy allows the cloudformation:ListStacks action" error appears when role "#RoleName" does not have the "cloudformation:ListStacks" action."
참고: AWS CLI 명령을 실행할 때 오류가 발생하면, AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
AWS Management Console을 사용하면 상응하는 “Failed to load stacks(스택을 로드하는 데 실패함)” 오류가 발생할 수 있습니다. 권한 관련 문제인지 확인하려면 AWS CloudTrail 이벤트를 확인한 다음, ListStacks API 호출을 필터링하십시오.
해결 방법
앞에서 설명한 오류는 역할에 cloudformation:ListStacks 작업을 수행하는 데 필요한 권한이 없을 때 발생합니다.
참고: 스택 이름이 지정되지 않은 경우 DescribeStack 권한에는 ListStacks에 대한 권한도 필요합니다.
ListStacks에 대한 액세스를 허용하도록 권한 정책 업데이트
AWS Management Console에서 다음 단계를 완료하여 역할의 권한 정책을 수정하십시오.
-
AWS Management Console에 관리자로 로그인합니다.
-
검색 창에 IAM을 입력합니다. **Services(서비스)**에서 AWS Management Console의 서비스로 IAM을 선택합니다.
-
왼쪽 탐색 창에서 Roles(역할) 탭을 선택합니다.
-
검색 창에 역할 이름을 입력하고 해당 역할 이름 하이퍼링크(파란색으로 강조 표시됨)를 선택합니다.
-
Permissions(권한) 탭에서 고객 관리형 정책 유형 또는 고객 인라인 정책 중 하나에 대해 + 아이콘을 선택합니다. 그런 다음 Edit(편집) 버튼을 선택합니다. 자세한 내용은 IAM 정책 편집을 참조하십시오.
-
Modify permissions in #PolicyName(#PolicyName에서 권한 수정) 웹 페이지를 검토합니다. cloudformation:ListStacks가 포함되어 있어야 합니다. 업데이트된 정책은 다음과 유사합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor",
"Effect": "Allow",
"Action": [
"cloudformation:DescribeStacks",
"cloudformation:ListStacks"
],
"Resource": "*"
}
]
}
-
**Next(다음)**를 선택합니다. 그런 다음, Save changes(변경 사항 저장) 버튼을 선택하여 정책 변경 사항을 적용합니다.
-
aws cloudformation describe-stacks 명령을 테스트하여 제대로 실행되는지 확인합니다.
관련 정보
DescribeStacks
describe-stacks
ListStacks