소개
지원 대시보드에는 준비된 제한 계정이 있지만 여전히 넓은 기본 Redis 계정으로 연결합니다. 설정을 전환하고 이전 연결 경로를 폐기하면서 모니터를 유지합니다.
이 독립 환경에는 이전 수업의 dashboard 계정이 있습니다. 배운 Redis 명령과 ACL 개념만 필요합니다. 앱 작업마다 새 연결을 열기 때문에 다음 요청은 현재 설정을 사용합니다.
새 환경의 앱 기준 동작 확인
이 단계에서는 새 환경의 정상 동작을 확인합니다. Dashboard를 여세요. 입력은 Ticket 104: password reset, 결과는 비어 있고 사용자 이름은 default입니다. Process ticket을 눌러 Processed: Ticket 104: password reset을 확인하세요.
Client에서 비공개 앱 설정을 읽으세요. cat은 파일을 표시합니다. 터미널은 설정 디렉터리 /workspace에서 시작합니다.
cat app.json
JSON은 중괄호 안에 이름이 있는 필드를 저장합니다. username은 Redis 사용자, password는 인증 비밀입니다. 문자열은 큰따옴표로 감싸고 필드는 쉼표로 구분합니다. 현재 사용자는 default이고 암호는 비어 있습니다.
앱은 요청마다 파일을 다시 읽고 새 Redis 연결을 엽니다. 재시작이나 클라이언트 코딩은 필요 없습니다. 별도 monitor 계정이 monitor:heartbeat를 읽습니다. 기본 계정을 변경해도 이 기능을 유지하세요. 설정에 비밀이 포함되므로 제공된 파일은 공개 제공되지 않는 비공개 파일입니다.
대시보드 연결 전환
이 단계에서는 앱이 제한 계정을 사용하게 합니다. Client에서 두 필드 설정을 교체하세요. cat > app.json은 다음 텍스트를 파일로 보내 이전 내용을 덮어씁니다. 인용된 EOF는 히어 도큐먼트를 시작합니다. 마지막 단독 행 EOF까지 모두 붙여 넣으세요. 인용은 JSON 안에서 셸 확장을 막습니다.
cat > app.json <<'EOF'
{"username":"dashboard","password":"Dash-Lab-42"}
EOF
설정만 바뀝니다. 이 새 스냅샷의 계정에는 이미 support:*의 GET/SET 권한이 있습니다. Dashboard를 새로 고침하고 사용자 이름이 dashboard인지 확인한 다음 Process ticket을 다시 누르세요. 이전 계정의 결과만으로는 부족합니다. 이 새 작업이 설정 계정의 읽기와 쓰기를 증명합니다.
WRONGPASS라면 JSON 자격 증명을 수정하고 다시 요청하세요. NOPERM이면 Cache Server의 cache-admin ACL GETUSER dashboard로 키 패턴과 명령을 살펴보세요. 첫 실습의 전체 재설정 명령으로 잘못된 계정을 복구할 수 있습니다. 잘못된 JSON은 위 블록을 다시 입력해 고칩니다.
maint를 지름길로 사용하지 마세요. 앱에는 자체 제한 계정이 필요합니다.
광범위한 기본 항목 폐기
이 단계에서는 정상 계정을 유지하며 자동 기본 경로를 끕니다. Cache Server로 전환하세요. cache-admin의 유지보수 계정은 계속 활성화되어 관리가 가능합니다.
ACL SETUSER default off는 기본 사용자로 새 인증을 하지 못하게 합니다. 활성 변경을 설정된 ACL 파일에 저장하세요.
cache-admin ACL SETUSER default off
cache-admin ACL SAVE
두 명령 모두 OK를 반환합니다. Client에서 자격 증명 없는 새 연결을 시도하세요.
redis-cli -h cache-server GET support:ticket
의도한 거부인 NOAUTH Authentication required.를 예상합니다. 인증 계정의 권한 부족인 NOPERM과 다릅니다. 여기서는 호출마다 새 연결을 만듭니다. 사용자를 꺼도 이미 인증된 세션이 종료된다는 보장은 없습니다. 활성 세션 폐기는 이 실습 범위 밖입니다.
Dashboard를 새로 고침하고 Process ticket을 누르세요. 전용 계정은 계속 동작해야 합니다. 다른 계정을 잘못 껐다면 유지보수 터미널에서 올바른 전체 재설정 규칙을 적용하고 다시 저장하세요. 앱 설정 오류를 숨기기 위해 넓은 기본 계정을 켜지 마세요.
보안과 가용성 함께 시험
이 단계에서는 허용 작업, 금지 데이터, 불필요한 명령을 비교합니다. Client를 사용하고 각 --askpass 요청에 Dash-Lab-42를 입력하세요.
redis-cli -h cache-server --user dashboard --askpass GET support:result
처리된 지원 결과는 계속 읽힙니다. 다음 명령은 의도적으로 무관한 재무 데이터를 요청합니다.
redis-cli -h cache-server --user dashboard --askpass GET finance:payroll
NOPERM을 예상합니다. CONFIG GET은 서버 설정을 읽지만 이런 관리 읽기도 앱에는 필요 없습니다. 인용한 별표는 모든 설정 이름을 요청하며 그대로 Redis에 도달해야 합니다.
redis-cli -h cache-server --user dashboard --askpass CONFIG GET '*'
명령 권한에 따른 NOPERM을 예상합니다. 이제 기존 모니터 계정을 사용하고 암호 요청에 Monitor-Lab-42를 입력하세요.
redis-cli -h cache-server --user monitor --askpass GET monitor:heartbeat
healthy를 예상합니다. 모든 계정을 끄거나 Redis를 멈추면 이 정상 테스트가 깨지므로 수리가 아닙니다. Cache Server에서 활성 ACL과 저장 파일을 표시하세요.
cache-admin ACL LIST
cat /data/users.acl
default off를 포함해 저장 항목과 활성 항목이 같아야 합니다. 다르면 cache-admin ACL SAVE를 반복하세요. 마지막으로 Dashboard에서 Process ticket을 한 번 더 누르세요. 실제 가용성과 의미 있는 거부가 함께 결과를 증명하며 정상 페이지 하나로 최소 권한을 증명할 수는 없습니다.
요약
실제 앱을 제한 Redis 계정으로 전환하고 새 기본 접근을 끈 뒤 ACL을 저장했습니다. 금지 요청과 정상 업무 및 모니터 작업을 확인했습니다. 검사는 새 연결을 사용하며 기존 세션 폐기를 뜻하지 않습니다.


