Skip to content

Commit

Permalink
[ko] translate secrets-good-practices.md into Korean
Browse files Browse the repository at this point in the history
  • Loading branch information
krapie committed Apr 23, 2023
1 parent c4b3d67 commit 007890f
Showing 1 changed file with 116 additions and 0 deletions.
116 changes: 116 additions & 0 deletions content/ko/docs/concepts/security/secrets-good-practices.md
@@ -0,0 +1,116 @@
---
title: 쿠버네티스 시크릿 모범 사례
description: >
클러스터 운영자와 애플리케이션 개발자를 위한 모범 시크릿 관리 규칙 및 사례.
content_type: concept
weight: 70
---

<!-- overview -->

{{<glossary_definition prepend="쿠버네티스에서 시크릿은"
term_id="secret" length="all">}}

다음 모범 사례는 클러스터 관리자와 애플리케이션 개발자 모두를 위한 것이다.
이 가이드라인을 사용하여 시크릿 오브젝트에 있는
민감한 정보의 보안을 개선하고
시크릿을 보다 효과적으로 관리할 수 있다.

<!-- body -->

## 클러스터 관리자

이 섹션에서는 클러스터 관리자가 클러스터의 기밀 정보 보안을 개선하는 데
사용할 수 있는 모범 사례를 제공한다.

### 저장된 데이터(at rest)에 암호화 구성

기본적으로 시크릿 오브젝트는 {{<glossary_tooltip term_id="etcd" text="etcd">}}에
암호화되지 않은 상태로 저장된다. 따라서 `etcd`의 시크릿 데이터에 암호화를 구성해야 한다.
자세한 내용은
[Encrypt Secret Data at Rest](/docs/tasks/administer-cluster/encrypt-data/)를 참고한다.

### 시크릿에 대한 최소 권한 접근 구성 {#least-privilege-secrets}

쿠버네티스 {{<glossary_tooltip term_id="rbac" text="역할 기반 접근 제어 (RBAC)">}}
[(RBAC)](/ko/docs/reference/access-authn-authz/rbac/)와 같은 접근 제어 메커니즘을 계획할 때,
`Secret` 오브젝트에 대한 접근에 대해 다음 가이드라인을 고려한다. 또한
[역할 기반 접근 제어 (RBAC) 모범 사례](/ko/docs/concepts/security/rbac-good-practices)
다른 가이드라인도 따라야 한다.

- **컴포넌트**: 가장 권한이 높은 시스템 수준의 구성 요소에 대해서만
`watch``list` 액세스를 제한한다. 컴포넌트의 정상 동작에 필요한 경우에만
시크릿에 대한 `get` 액세스를 허용한다.
- **사람**: 시크릿에 `get`, `watch` 또는 `list` 액세스를 제한한다. 클러스터 관리자에게만
`etcd`에 대한 액세스를 허용한다. 여기에는 읽기 전용 액세스가 포함된다. 특정 어노테이션을
사용하여 시크릿에 대한 액세스를 제한하는 등의 더 복잡한 액세스 제어를 수행하려면
써드파티(third-party) 권한 부여 메커니즘을 사용하는 것을 고려한다.

{{< caution >}}
시크릿에 대한 `list` 액세스 권한을 부여하면 주체가 암시적으로
시크릿의 내용을 가져갈 수 있다.
{{< /caution >}}

시크릿을 사용하는 파드를 생성할 수 있는 사용자는 해당 시크릿의 값도 볼 수 있다.
클러스터 정책에서 사용자가 시크릿을 직접 읽는 것을 허용하지 않더라도,
동일한 사용자가 시크릿을 노출하는 파드를 실행할 수 있다.
이 액세스 권한을 가진 사용자가 의도적이든 의도적이지 않든 시크릿 데이터를 노출시켜
발생할 수 있는 영향을 감지하거나 제한할 수 있다.
몇 가지 권장 사항은 다음과 같다.

* 수명이 짧은 시크릿 사용
* 한 사용자가 여러 비밀을 동시에 읽는 것과 같은 특정 이벤트에 대해
경고하는 감사 규칙 구현

### etcd 관리 정책 개선

더 이상 사용하지 않는다면 `etcd`에서 사용하는 내구성 스토리지를
지우거나 파쇄하는 것을 고려한다.

여러 개의 `etcd` 인스턴스가 있는 경우, 인스턴스 간에 암호화된 SSL/TLS 통신을 구성하여
전송 중(in transit)인 시크릿 데이터를 보호한다.

### 외부 시크릿에 대한 액세스 구성

{{% thirdparty-content %}}

써드파티 시크릿 저장소 공급자를 사용하여 기밀 데이터를 클러스터 외부에 보관한 다음
해당 정보에 액세스하도록 파드를 구성할 수 있다.
[쿠버네티스 시크릿 스토어 CSI 드라이버](https://secrets-store-csi-driver.sigs.k8s.io/)
kubelet이 외부 스토어에서 시크릿을 검색하고
접근 권한을 부여한 특정 파드에 시크릿을 볼륨으로 마운트할 수 있도록 하는
데몬셋(DaemonSet)이다.

지원되는 제공자 목록은 다음을 참고한다.
[시크릿 스토어 CSI 드라이버 제공자](https://secrets-store-csi-driver.sigs.k8s.io/concepts.html#provider-for-the-secrets-store-csi-driver).

## 개발자

이 섹션은 개발자가 쿠버네티스 리소스를 구축하고 배포할 때
기밀 데이터의 보안을 개선하기 위해 사용할 수 있는 모범 사례를 제공한다.

### 특정 컨테이너에 시크릿 액세스 제한

파드에 여러 개의 컨테이너를 정의하고 있고 그 중 하나만 시크릿에 접근해야 하는 경우,
볼륨 마운트 또는 환경 변수 구성을 정의하여
다른 컨테이너가 해당 시크릿에 액세스하지 못하도록
한다.

### 읽기 후 시크릿 데이터 보호

애플리케이션은 환경 변수나 볼륨에서 기밀 정보를 읽은 후에도 그 값을 보호해야 한다.
예를 들어, 애플리케이션은 시크릿 데이터를 로그에 남기거나
신뢰할 수 없는 상대에게
전송하지 않아야 한다.

### 시크릿 매니페스트 공유 방지

시크릿 데이터가 base64로 인코딩된
{{< glossary_tooltip text="매니페스트" term_id="manifest" >}}를 통해 시크릿을 구성하는 경우,
이 파일을 공유하거나 소스 리포지토리에 체크인하면 매니페스트를 읽을 수 있는 모든 사람이
시크릿을 사용할 수 있다는 것을 의미한다.

{{<caution>}}
Base64 인코딩은 암호화 방식이 _아니며_, 일반 텍스트에 비해 추가적인
기밀성을 제공하지 않는다.
{{</caution>}}

0 comments on commit 007890f

Please sign in to comment.