본문 바로가기
홈 카탈로그 진단 항목 전체 ap-northeast-2 · 3820-1174-9265
클라우드 관리체계 보안 취약점 평가기준 (퍼블릭 클라우드) / 6. 접근통제 / 6.1 계정 및 권한 관리

PISM-046웹 기반 쉘 환경 권한 통제 여부

위험도 4 기술적 보안 CloudShell · IAM 평가 구분: 스크립트
클라우드에서 제공되는 웹 기반 쉘 환경은 인터넷 접근, 인스턴스에 파일 업로드 및 다운로드 등이 가능하여 사용자 정보가 유출되거나 다른 공격에 활용될 수 있으므로, 웹 기반 쉘 환경에 대한 권한 통제 여부를 점검합니다.
1. 점검 대상 확인
2. CLI 진단
3. 양호/취약 판정
4. 조치 · 재확인

방법 1AWS Management Console 경로

IAM → 사용자 → 대상 사용자 선택 → 권한 탭에서 AWSCloudShellFullAccess 연결 여부 또는 인라인 정책의 cloudshell:* 포함 여부 확인
콘솔은 화면이 자주 바뀝니다. 실제 점검에서는 아래 CLI(방법 2) 로 증적을 남기는 편이 재현성이 높습니다.

방법 2AWS CLI 진단

아래 명령을 눌러 실행하거나, 직접 입력해 보세요. 응답은 실제 AWS CLI 출력 형식을 따릅니다.
$ aws sts get-caller-identity { "UserId": "AIDA4XQ7N2VZK3RJTPLWE", "Account": "382011749265", "Arn": "arn:aws:iam::382011749265:user/audit-readonly" } 진단 계정으로 로그인되었습니다. 아래 명령을 실행해 점검을 시작하세요.

판정이 환경은 양호합니까, 취약합니까?

평가기준의 판단 근거는 명령 출력입니다. 먼저 위에서 명령을 실행해 출력을 확인하세요.

🛠️ 조치 방법

CloudShell 자체를 막을지, 파일 송수신만 막을지 결정합니다. 운영 편의를 고려하면 쉘은 허용하되 업로드·다운로드를 Deny 하는 방식이 현실적입니다.
# 방안 A) CloudShell 전면 차단 (가장 강함) $ aws iam detach-user-policy --user-name fin-dev-lee \ --policy-arn arn:aws:iam::aws:policy/AWSCloudShellFullAccess $ aws iam put-user-policy --user-name fin-dev-lee \ --policy-name deny-cloudshell --policy-document '{ "Version":"2012-10-17", "Statement":[{"Effect":"Deny","Action":"cloudshell:*","Resource":"*"}]}' # 방안 B) 쉘은 허용, 파일 반출입만 차단 (권장) $ aws iam put-user-policy --user-name fin-dev-lee \ --policy-name cloudshell-no-filetransfer --policy-document '{ "Version":"2012-10-17", "Statement":[{ "Effect":"Deny", "Action":[ "cloudshell:GetFileDownloadUrls", "cloudshell:GetFileUploadUrls", "cloudshell:PutFile" ], "Resource":"*"}]}' # 3) 조직 전체 적용 — SCP $ aws organizations create-policy --type SERVICE_CONTROL_POLICY \ --name DenyCloudShellFileTransfer \ --content '{"Version":"2012-10-17","Statement":[{"Effect":"Deny", "Action":["cloudshell:GetFileDownloadUrls","cloudshell:PutFile"], "Resource":"*"}]}'

📐 IaC 로 고정하기

콘솔에서 한 번 고쳐도 다음 배포에서 되돌아갑니다. 코드로 고정해야 재발하지 않습니다.
# 조직 차원 SCP — 계정별 설정 누락을 막는다 resource "aws_organizations_policy" "deny_cloudshell_transfer" { name = "DenyCloudShellFileTransfer" type = "SERVICE_CONTROL_POLICY" content = jsonencode({ Version = "2012-10-17" Statement = [{ Effect = "Deny" Action = [ "cloudshell:GetFileDownloadUrls", "cloudshell:GetFileUploadUrls", "cloudshell:PutFile", ] Resource = "*" }] }) }
주의 — CloudShell 을 막아도 동등한 우회로가 여럿 남습니다. ssm:StartSession(세션 관리자), ec2-instance-connect, EKS 의 kubectl exec 가 모두 같은 성격의 대화형 쉘입니다. 하나만 막고 "통제했다"고 판단하면 평가에서 지적됩니다. 대화형 접근 경로를 전부 목록화하고 각각에 대해 로깅·파일전송 통제를 적용해야 합니다.

📋 평가항목 정보

평가항목 IDPISM-046
구분기술적 보안
통제분야6. 접근통제
통제구분(대)6.1 계정 및 권한 관리
평가항목웹 기반 쉘 환경 권한 통제 여부
위험도4
평가 구분 (AWS)스크립트
상세설명클라우드에서 제공되는 웹 기반 쉘 환경은 인터넷 접근, 인스턴스에 파일 업로드 및 다운로드 등이 가능하여 사용자 정보가 유출되거나 다른 공격에 활용될 수 있으므로, 웹 기반 쉘 환경에 대한 권한 통제 여부를 점검합니다.

📎 확인 자료 (증적)

  • 사용자·역할별 CloudShell 관련 정책 연결 현황
  • 인라인 정책의 cloudshell:* 포함 여부
  • simulate-principal-policy 결과 (파일 송수신 차단 확인)
  • 동등 경로(SSM 세션·EC2 Instance Connect·kubectl exec) 통제 현황
  • CloudShell 사용 이력(CloudTrail) 및 검토 기록
평가에서는 화면 캡처보다 CLI 출력이 강한 증적입니다. 명령·실행시각·계정 ARN 이 함께 남기 때문입니다. 위 진단 탭의 출력을 그대로 보고서에 붙이면 됩니다.

🏦 금융 관점

금융회사는 업무망과 인터넷망의 분리를 요구받습니다. CloudShell 은 브라우저 안에서 인터넷에 연결된 리눅스 쉘을 열어 주므로, 망분리 통제를 논리적으로 우회할 수 있는 지점입니다. 게다가 사용자 권한을 그대로 승계하므로 관리자 계정에서 열면 계정 전체를 조작할 수 있습니다 — 위험도 4 가 부여된 이유입니다.
「클라우드 관리체계 보안 취약점 평가기준(퍼블릭 클라우드)」의 평가항목을 교육용으로 재구성한 시뮬레이터입니다. 계정 ID·ARN·리소스 ID 는 형식만 실제와 같게 만든 가상 값이며, 어떤 AWS 환경에도 접속하지 않습니다. 실제 평가에서는 기관의 최신 평가기준 원문과 AWS 공식 문서를 따르십시오.