aws 금융 클라우드 진단홈카탈로그진단 항목 전체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 가 모두 같은 성격의 대화형 쉘입니다. 하나만 막고 "통제했다"고 판단하면 평가에서 지적됩니다. 대화형 접근 경로를 전부 목록화하고 각각에 대해 로깅·파일전송 통제를 적용해야 합니다.
📋 평가항목 정보
평가항목 ID
PISM-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 공식 문서를 따르십시오.