본문으로 건너뛰기

쿠버네티스 시크릿 디코더

Kubernetes Secret Decoder

Secret 매니페스트의 Base64 값을 모두 해독하고, 수정한 내용을 다시 인코딩해 적용할 수 있게 합니다.

쿠버네티스 Secret 매니페스트를 열어 Base64 값을 전부 풀어 보여 주고, 원하면 고칠 수 있게 한 뒤 다시 인코딩해 매니페스트를 만들어 줍니다. 전부 탭 안에서 돕니다. Secret이야말로 디코딩하겠다고 서버로 보내면 안 되는 것입니다.

🔒 브라우저 안에서만 처리kubernetessecretbase64devops

Secret 매니페스트

secret.yaml 놓기

이 탭에서 읽습니다. 올라가지 않습니다.

전부 이 탭에서 돌아갑니다. 어디로도 보내지 않고 저장하지도 않습니다.

값 4개

값 표시
username

YWRtaW4=

password

c3VwZXItc2VjcmV0LXBhc3N3b3Jk

DATABASE_URL

cG9zdGdyZXM6Ly9hZG1pbjpzdXBlci1zZWNyZXQtcGFzc3dvcmRAZGI6NTQzMi9hcHA=

NOT_ENCODEDstringData — Base64 아님

dGhpcyBvbmUgaXMgcGxhaW4gdGV4dA==

다시 인코딩한 매니페스트

위에서 값을 고치면 여기가 바뀝니다. `stringData` 항목은 Base64로 바뀌어 `data`에 합쳐집니다. `kubectl apply`도 결국 그렇게 합니다.

Base64는 인코딩이지 암호화가 아닙니다. 쿠버네티스 Secret 자체는 아무것도 보호하지 않습니다. 보호하는 것은 RBAC와 저장 시 암호화입니다.

사용 방법

  1. 매니페스트를 붙여넣습니다

    `kubectl get secret 이름 -o yaml`의 출력이나 저장소의 파일을 넣으면 됩니다. `data`와 `stringData` 둘 다 읽습니다.

  2. 값을 읽습니다

    키마다 디코딩된 값이 나오고 그 아래에 Base64가 함께 놓입니다. `stringData` 항목에는 표시가 붙습니다. 애초에 인코딩된 적이 없는 값이기 때문입니다.

  3. 고치고 다시 만들어진 매니페스트를 가져갑니다

    값을 고치면 아래 매니페스트가 갱신됩니다. `stringData` 항목은 Base64로 바뀌어 `data`에 합쳐집니다. `kubectl apply`도 들어갈 때 정확히 그렇게 합니다.

자주 묻는 질문

쿠버네티스 Secret이 암호화를 하나요?

그 자체로는 아닙니다. Base64는 인코딩이라, 매니페스트를 읽을 수 있는 사람은 값도 읽습니다. Secret을 보호하는 것은 클러스터의 RBAC와 etcd의 저장 시 암호화이고, 둘 다 YAML에는 보이지 않습니다.

어떤 값이 왜 오류로 나오나요?

올바른 Base64가 아니기 때문입니다. 대개 매니페스트를 손으로 고쳤거나, 그 값이 `stringData`에 있어야 하는 경우입니다. 쿠버네티스도 이 매니페스트를 거절합니다.

운영 Secret을 여기 붙여넣어도 되나요?

어디로도 보내지 않고 저장하지도 않습니다. 디코딩은 브라우저 안에서 일어납니다. 다만 값이 화면에 드러나므로, 화면 공유나 브라우저 기록에 대한 평소의 주의는 그대로 유효합니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.