diff --git a/content/ko/docs/reference/access-authn-authz/authorization.md b/content/ko/docs/reference/access-authn-authz/authorization.md index a9370ea74b..b4d221c675 100644 --- a/content/ko/docs/reference/access-authn-authz/authorization.md +++ b/content/ko/docs/reference/access-authn-authz/authorization.md @@ -1,4 +1,9 @@ --- + + + + + title: 인가 개요 content_type: concept weight: 60 @@ -187,22 +192,33 @@ status: 하나 이상의 인가 모듈을 선택할 수 있다. 모듈이 순서대로 확인되기 때문에 우선 순위가 더 높은 모듈이 요청을 허용하거나 거부할 수 있다. -## 파드 생성을 통한 권한 확대 +## 워크로드 생성 및 수정을 통한 권한 확대 {#privilege-escalation-via-pod-creation} -네임스페이스에서 파드를 생성할 수 있는 권한을 가진 사용자는 -해당 네임스페이스 안에서 자신의 권한을 확대할 가능성이 있다. -네임스페이스에서 자신의 권한에 접근할 수 있는 파드를 만들 수 있다. -사용자가 스스로 읽을 수 없는 시크릿에 접근할 수 있는 파드나 -서로 다른/더 큰 권한을 가진 서비스 어카운트로 실행되는 파드를 생성할 수 있다. +네임스페이스에서 파드를 직접, 또는 오퍼레이터와 같은 [컨트롤러](/ko/docs/concepts/architecture/controller/)를 통해 생성/수정할 수 있는 사용자는 +해당 네임스페이스 안에서 자신의 권한을 확대할 수 있다. {{< caution >}} -시스템 관리자는 파드 생성에 대한 접근 권한을 부여할 때 주의한다. -네임스페이스에서 파드(또는 파드를 생성하는 컨트롤러)를 생성할 수 있는 권한을 부여받은 사용자는 -네임스페이스의 모든 시크릿을 읽을 수 있으며 네임스페이스의 모든 컨피그 맵을 읽을 수 있고 -네임스페이스의 모든 서비스 어카운트를 가장하고 해당 어카운트가 취할 수 있는 모든 작업을 취할 수 있다. -이는 인가 모드에 관계없이 적용된다. +시스템 관리자는 파드 생성/수정에 대한 접근 권한을 부여할 때 주의한다. +[권한 확대 경로](#escalation-paths)에서 접근 권한이 잘못 사용되었을 때의 상세사항을 확인할 수 있다. {{< /caution >}} +### 권한 확대 경로 {#escalation-paths} +- 네임스페이스 내의 임의의 시크릿을 마운트 + - 다른 워크로드를 위한 시크릿으로의 접근에 사용될 수 있음 + - 더 권한이 많은 서비스 어카운트의 서비스 어카운트 토큰 획득에 사용될 수 있음 +- 네임스페이스 내의 임의의 서비스 어카운트를 사용 + - 다른 워크로드인것처럼 사칭하여 쿠버네티스 API 액션을 수행할 수 있음 + - 서비스 어카운트가 갖고 있는 '권한이 필요한 액션'을 수행할 수 있음 +- 네임스페이스 내의 다른 워크로드를 위한 컨피그맵을 마운트 + - 다른 워크로드를 위한 정보(예: DB 호스트 이름) 획득에 사용될 수 있음 +- 네임스페이스 내의 다른 워크로드를 위한 볼륨을 마운트 + - 다른 워크로드를 위한 정보의 획득 및 수정에 사용될 수 있음 + +{{< caution >}} +시스템 관리자는 위와 같은 영역을 수정하는 CRD를 배포할 때 주의를 기울여야 한다. +이들은 의도하지 않은 권한 확대 경로를 노출할 수 있다. +RBAC 제어에 대해 결정할 때 이와 같은 사항을 고려해야 한다. +{{< /caution >}} ## {{% heading "whatsnext" %}} diff --git a/content/ko/docs/reference/access-authn-authz/service-accounts-admin.md b/content/ko/docs/reference/access-authn-authz/service-accounts-admin.md index 55615e55de..91ee87ebc2 100644 --- a/content/ko/docs/reference/access-authn-authz/service-accounts-admin.md +++ b/content/ko/docs/reference/access-authn-authz/service-accounts-admin.md @@ -67,7 +67,7 @@ weight: 50 defaultMode: 420 # 0644 sources: - serviceAccountToken: - expirationSeconds: 3600 + expirationSeconds: 3607 path: token - configMap: items: diff --git a/content/ko/docs/reference/command-line-tools-reference/feature-gates.md b/content/ko/docs/reference/command-line-tools-reference/feature-gates.md index 7b1bdb7c42..9767966cab 100644 --- a/content/ko/docs/reference/command-line-tools-reference/feature-gates.md +++ b/content/ko/docs/reference/command-line-tools-reference/feature-gates.md @@ -165,8 +165,8 @@ kubelet과 같은 컴포넌트의 기능 게이트를 설정하려면, 기능 | `PreferNominatedNode` | `true` | 베타 | 1.22 | | | `ProbeTerminationGracePeriod` | `false` | 알파 | 1.21 | 1.21 | | `ProbeTerminationGracePeriod` | `false` | 베타 | 1.22 | | -| `ProxyTerminatingEndpoints` | `false` | 알파 | 1.22 | | | `ProcMountType` | `false` | 알파 | 1.12 | | +| `ProxyTerminatingEndpoints` | `false` | 알파 | 1.22 | | | `QOSReserved` | `false` | 알파 | 1.11 | | | `ReadWriteOncePod` | `false` | 알파 | 1.22 | | | `RemainingItemCount` | `false` | 알파 | 1.15 | 1.15 | @@ -789,10 +789,6 @@ kubelet과 같은 컴포넌트의 기능 게이트를 설정하려면, 기능 플러그인의 등록을 중지한다. - `IndexedJob`: [잡](/ko/docs/concepts/workloads/controllers/job/) 컨트롤러가 완료 횟수를 기반으로 파드 완료를 관리할 수 있도록 한다. -- `JobTrackingWithFinalizers`: 클러스터에 무제한으로 남아 있는 파드에 의존하지 않고 - [잡](/ko/docs/concepts/workloads/controllers/job)의 완료를 추적할 수 있다. - 잡 컨트롤러는 완료된 파드를 추적하기 위해 - 완료된 파드의 잡 상태 필드를 사용한다. - `IngressClassNamespacedParams`: `IngressClass` 리소스가 네임스페이스 범위로 한정된 파라미터를 이용할 수 있도록 한다. 이 기능은 `IngressClass.spec.parameters` 에 `Scope` 와 `Namespace` 2개의 필드를 추가한다. @@ -800,10 +796,10 @@ kubelet과 같은 컴포넌트의 기능 게이트를 설정하려면, 기능 비동기 조정을 허용한다. - `IPv6DualStack`: IPv6을 위한 [이중 스택](/ko/docs/concepts/services-networking/dual-stack/) 기능을 활성화한다. -- `JobTrackingWithFinalizers`: 클러스터에 무제한으로 남아있는 파드에 - 의존하지 않고 잡 완료를 추적할 수 있다. - 파드 finalizers는 잡 상태 필드와 - 아직 구성되지 않은 파드를 추적할 수 있다. +- `JobTrackingWithFinalizers`: 클러스터에 무제한으로 남아 있는 파드에 의존하지 않고 + [잡](/ko/docs/concepts/workloads/controllers/job)의 완료를 추적할 수 있다. + 잡 컨트롤러는 완료된 파드를 추적하기 위해 + 완료된 파드의 잡 상태 필드를 사용한다. - `KubeletConfigFile`: 구성 파일을 사용하여 지정된 파일에서 kubelet 구성을 로드할 수 있다. 자세한 내용은 [구성 파일을 통해 kubelet 파라미터 설정](/docs/tasks/administer-cluster/kubelet-config-file/)을 @@ -1012,19 +1008,17 @@ kubelet과 같은 컴포넌트의 기능 게이트를 설정하려면, 기능 - `WatchBookmark`: 감시자 북마크(watch bookmark) 이벤트 지원을 활성화한다. - `WinDSR`: kube-proxy가 윈도우용 DSR 로드 밸런서를 생성할 수 있다. - `WinOverlay`: kube-proxy가 윈도우용 오버레이 모드에서 실행될 수 있도록 한다. +- `WindowsEndpointSliceProxying`: 활성화되면, 윈도우에서 실행되는 kube-proxy는 + 엔드포인트 대신 엔드포인트슬라이스를 기본 데이터 소스로 사용하여 + 확장성과 성능을 향상시킨다. + [엔드포인트슬라이스 활성화하기](/ko/docs/concepts/services-networking/endpoint-slices/)를 참고한다. - `WindowsGMSA`: 파드에서 컨테이너 런타임으로 GMSA 자격 증명 스펙을 전달할 수 있다. - `WindowsHostProcessContainers`: 윈도우 HostProcess 컨테이너에 대한 지원을 사용하도록 설정한다. - `WindowsRunAsUserName` : 기본 사용자가 아닌(non-default) 사용자로 윈도우 컨테이너에서 애플리케이션을 실행할 수 있도록 지원한다. 자세한 내용은 [RunAsUserName 구성](/ko/docs/tasks/configure-pod-container/configure-runasusername/)을 참고한다. -- `WindowsEndpointSliceProxying`: 활성화되면, 윈도우에서 실행되는 kube-proxy는 - 엔드포인트 대신 엔드포인트슬라이스를 기본 데이터 소스로 사용하여 - 확장성과 성능을 향상시킨다. - [엔드포인트슬라이스 활성화하기](/ko/docs/concepts/services-networking/endpoint-slices/)를 참고한다. -- `WindowsHostProcessContainers`: 윈도우 노드에서 `HostProcess` - 컨테이너 지원을 활성화한다. - + ## {{% heading "whatsnext" %}} diff --git a/content/ko/docs/reference/command-line-tools-reference/kube-proxy.md b/content/ko/docs/reference/command-line-tools-reference/kube-proxy.md index 29e9deee83..50a50b8db8 100644 --- a/content/ko/docs/reference/command-line-tools-reference/kube-proxy.md +++ b/content/ko/docs/reference/command-line-tools-reference/kube-proxy.md @@ -179,7 +179,7 @@ kube-proxy [flags]
알파/실험 기능에 대한 기능 게이트를 설명하는 키=값 쌍 집합. 옵션은 다음과 같다.
APIListChunking=true|false (BETA - 기본값=true)
APIPriorityAndFairness=true|false (BETA - 기본값=true)
APIResponseCompression=true|false (BETA - 기본값=true)
APIServerIdentity=true|false (ALPHA - 기본값=false)
AllAlpha=true|false (ALPHA - 기본값=false)
AllBeta=true|false (BETA - 기본값=false)
AnyVolumeDataSource=true|false (ALPHA - 기본값=false)
AppArmor=true|false (BETA - 기본값=true)
BalanceAttachedNodeVolumes=true|false (ALPHA - 기본값=false)
BoundServiceAccountTokenVolume=true|false (BETA - 기본값=true)
CPUManager=true|false (BETA - 기본값=true)
CSIInlineVolume=true|false (BETA - 기본값=true)
CSIMigration=true|false (BETA - 기본값=true)
CSIMigrationAWS=true|false (BETA - 기본값=false)
CSIMigrationAzureDisk=true|false (BETA - 기본값=false)
CSIMigrationAzureFile=true|false (BETA - 기본값=false)
CSIMigrationGCE=true|false (BETA - 기본값=false)
CSIMigrationOpenStack=true|false (BETA - 기본값=true)
CSIMigrationvSphere=true|false (BETA - 기본값=false)
CSIMigrationvSphereComplete=true|false (BETA - 기본값=false)
CSIServiceAccountToken=true|false (BETA - 기본값=true)
CSIStorageCapacity=true|false (BETA - 기본값=true)
CSIVolumeFSGroupPolicy=true|false (BETA - 기본값=true)
CSIVolumeHealth=true|false (ALPHA - 기본값=false)
ConfigurableFSGroupPolicy=true|false (BETA - 기본값=true)
ControllerManagerLeaderMigration=true|false (ALPHA - 기본값=false)
CronJobControllerV2=true|false (BETA - 기본값=true)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 기본값=false)
DaemonSetUpdateSurge=true|false (ALPHA - 기본값=false)
DefaultPodTopologySpread=true|false (BETA - 기본값=true)
DevicePlugins=true|false (BETA - 기본값=true)
DisableAcceleratorUsageMetrics=true|false (BETA - 기본값=true)
DownwardAPIHugePages=true|false (BETA - 기본값=false)
DynamicKubeletConfig=true|false (BETA - 기본값=true)
EfficientWatchResumption=true|false (BETA - 기본값=true)
EndpointSliceProxying=true|false (BETA - 기본값=true)
EndpointSliceTerminatingCondition=true|false (ALPHA - 기본값=false)
EphemeralContainers=true|false (ALPHA - 기본값=false)
ExpandCSIVolumes=true|false (BETA - 기본값=true)
ExpandInUsePersistentVolumes=true|false (BETA - 기본값=true)
ExpandPersistentVolumes=true|false (BETA - 기본값=true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 기본값=false)
GenericEphemeralVolume=true|false (BETA - 기본값=true)
GracefulNodeShutdown=true|false (BETA - 기본값=true)
HPAContainerMetrics=true|false (ALPHA - 기본값=false)
HPAScaleToZero=true|false (ALPHA - 기본값=false)
HugePageStorageMediumSize=true|false (BETA - 기본값=true)
IPv6DualStack=true|false (BETA - 기본값=true)
InTreePluginAWSUnregister=true|false (ALPHA - 기본값=false)
InTreePluginAzureDiskUnregister=true|false (ALPHA - 기본값=false)
InTreePluginAzureFileUnregister=true|false (ALPHA - 기본값=false)
InTreePluginGCEUnregister=true|false (ALPHA - 기본값=false)
InTreePluginOpenStackUnregister=true|false (ALPHA - 기본값=false)
InTreePluginvSphereUnregister=true|false (ALPHA - 기본값=false)
IndexedJob=true|false (ALPHA - 기본값=false)
IngressClassNamespacedParams=true|false (ALPHA - 기본값=false)
KubeletCredentialProviders=true|false (ALPHA - 기본값=false)
KubeletPodResources=true|false (BETA - 기본값=true)
KubeletPodResourcesGetAllocatable=true|false (ALPHA - 기본값=false)
LocalStorageCapacityIsolation=true|false (BETA - 기본값=true)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 기본값=false)
LogarithmicScaleDown=true|false (ALPHA - 기본값=false)
MemoryManager=true|false (ALPHA - 기본값=false)
MixedProtocolLBService=true|false (ALPHA - 기본값=false)
NamespaceDefaultLabelName=true|false (BETA - 기본값=true)
NetworkPolicyEndPort=true|false (ALPHA - 기본값=false)
NonPreemptingPriority=true|false (BETA - 기본값=true)
PodAffinityNamespaceSelector=true|false (ALPHA - 기본값=false)
PodDeletionCost=true|false (ALPHA - 기본값=false)
PodOverhead=true|false (BETA - 기본값=true)
PreferNominatedNode=true|false (ALPHA - 기본값=false)
ProbeTerminationGracePeriod=true|false (ALPHA - 기본값=false)
ProcMountType=true|false (ALPHA - 기본값=false)
QOSReserved=true|false (ALPHA - 기본값=false)
RemainingItemCount=true|false (BETA - 기본값=true)
RemoveSelfLink=true|false (BETA - 기본값=true)
RotateKubeletServerCertificate=true|false (BETA - 기본값=true)
ServerSideApply=true|false (BETA - 기본값=true)
ServiceInternalTrafficPolicy=true|false (ALPHA - 기본값=false)
ServiceLBNodePortControl=true|false (ALPHA - 기본값=false)
ServiceLoadBalancerClass=true|false (ALPHA - 기본값=false)
ServiceTopology=true|false (ALPHA - 기본값=false)
SetHostnameAsFQDN=true|false (BETA - 기본값=true)
SizeMemoryBackedVolumes=true|false (ALPHA - 기본값=false)
StorageVersionAPI=true|false (ALPHA - 기본값=false)
StorageVersionHash=true|false (BETA - 기본값=true)
SuspendJob=true|false (ALPHA - 기본값=false)
TTLAfterFinished=true|false (BETA - 기본값=true)
TopologyAwareHints=true|false (ALPHA - 기본값=false)
TopologyManager=true|false (BETA - 기본값=true)
ValidateProxyRedirects=true|false (BETA - 기본값=true)
VolumeCapacityPriority=true|false (ALPHA - 기본값=false)
WarningHeaders=true|false (BETA - 기본값=true)
WinDSR=true|false (ALPHA - 기본값=false)
WinOverlay=true|false (BETA - 기본값=true)
WindowsEndpointSliceProxying=true|false (BETA - 기본값=true)
알파/실험 기능에 대한 기능 게이트를 설명하는 키=값 쌍 집합. 옵션은 다음과 같다.
APIListChunking=true|false (BETA - 기본값=true)
APIPriorityAndFairness=true|false (BETA - 기본값=true)
APIResponseCompression=true|false (BETA - 기본값=true)
APIServerIdentity=true|false (ALPHA - 기본값=false)
APIServerTracing=true|false (ALPHA - 기본값=false)
AllAlpha=true|false (ALPHA - 기본값=false)
AllBeta=true|false (BETA - 기본값=false)
AnyVolumeDataSource=true|false (ALPHA - 기본값=false)
AppArmor=true|false (BETA - 기본값=true)
CPUManager=true|false (BETA - 기본값=true)
CPUManagerPolicyOptions=true|false (ALPHA - 기본값=false)
CSIInlineVolume=true|false (BETA - 기본값=true)
CSIMigration=true|false (BETA - 기본값=true)
CSIMigrationAWS=true|false (BETA - 기본값=false)
CSIMigrationAzureDisk=true|false (BETA - 기본값=false)
CSIMigrationAzureFile=true|false (BETA - 기본값=false)
CSIMigrationGCE=true|false (BETA - 기본값=false)
CSIMigrationOpenStack=true|false (BETA - 기본값=true)
CSIMigrationvSphere=true|false (BETA - 기본값=false)
CSIStorageCapacity=true|false (BETA - 기본값=true)
CSIVolumeFSGroupPolicy=true|false (BETA - 기본값=true)
CSIVolumeHealth=true|false (ALPHA - 기본값=false)
CSRDuration=true|false (BETA - 기본값=true)
ConfigurableFSGroupPolicy=true|false (BETA - 기본값=true)
ControllerManagerLeaderMigration=true|false (BETA - 기본값=true)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 기본값=false)
DaemonSetUpdateSurge=true|false (BETA - 기본값=true)
DefaultPodTopologySpread=true|false (BETA - 기본값=true)
DelegateFSGroupToCSIDriver=true|false (ALPHA - 기본값=false)
DevicePlugins=true|false (BETA - 기본값=true)
DisableAcceleratorUsageMetrics=true|false (BETA - 기본값=true)
DisableCloudProviders=true|false (ALPHA - 기본값=false)
DownwardAPIHugePages=true|false (BETA - 기본값=false)
EfficientWatchResumption=true|false (BETA - 기본값=true)
EndpointSliceTerminatingCondition=true|false (BETA - 기본값=true)
EphemeralContainers=true|false (ALPHA - 기본값=false)
ExpandCSIVolumes=true|false (BETA - 기본값=true)
ExpandInUsePersistentVolumes=true|false (BETA - 기본값=true)
ExpandPersistentVolumes=true|false (BETA - 기본값=true)
ExpandedDNSConfig=true|false (ALPHA - 기본값=false)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 기본값=false)
GenericEphemeralVolume=true|false (BETA - 기본값=true)
GracefulNodeShutdown=true|false (BETA - 기본값=true)
HPAContainerMetrics=true|false (ALPHA - 기본값=false)
HPAScaleToZero=true|false (ALPHA - 기본값=false)
IPv6DualStack=true|false (BETA - 기본값=true)
InTreePluginAWSUnregister=true|false (ALPHA - 기본값=false)
InTreePluginAzureDiskUnregister=true|false (ALPHA - 기본값=false)
InTreePluginAzureFileUnregister=true|false (ALPHA - 기본값=false)
InTreePluginGCEUnregister=true|false (ALPHA - 기본값=false)
InTreePluginOpenStackUnregister=true|false (ALPHA - 기본값=false)
InTreePluginvSphereUnregister=true|false (ALPHA - 기본값=false)
IndexedJob=true|false (BETA - 기본값=true)
IngressClassNamespacedParams=true|false (BETA - 기본값=true)
JobTrackingWithFinalizers=true|false (ALPHA - 기본값=false)
KubeletCredentialProviders=true|false (ALPHA - 기본값=false)
KubeletInUserNamespace=true|false (ALPHA - 기본값=false)
KubeletPodResources=true|false (BETA - 기본값=true)
KubeletPodResourcesGetAllocatable=true|false (ALPHA - 기본값=false)
LocalStorageCapacityIsolation=true|false (BETA - 기본값=true)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 기본값=false)
LogarithmicScaleDown=true|false (BETA - 기본값=true)
MemoryManager=true|false (BETA - 기본값=true)
MemoryQoS=true|false (ALPHA - 기본값=false)
MixedProtocolLBService=true|false (ALPHA - 기본값=false)
NetworkPolicyEndPort=true|false (BETA - 기본값=true)
NodeSwap=true|false (ALPHA - 기본값=false)
NonPreemptingPriority=true|false (BETA - 기본값=true)
PodAffinityNamespaceSelector=true|false (BETA - 기본값=true)
PodDeletionCost=true|false (BETA - 기본값=true)
PodOverhead=true|false (BETA - 기본값=true)
PodSecurity=true|false (ALPHA - 기본값=false)
PreferNominatedNode=true|false (BETA - 기본값=true)
ProbeTerminationGracePeriod=true|false (BETA - 기본값=false)
ProcMountType=true|false (ALPHA - 기본값=false)
ProxyTerminatingEndpoints=true|false (ALPHA - 기본값=false)
QOSReserved=true|false (ALPHA - 기본값=false)
ReadWriteOncePod=true|false (ALPHA - 기본값=false)
RemainingItemCount=true|false (BETA - 기본값=true)
RemoveSelfLink=true|false (BETA - 기본값=true)
RotateKubeletServerCertificate=true|false (BETA - 기본값=true)
Seccomp기본값=true|false (ALPHA - 기본값=false)
ServiceInternalTrafficPolicy=true|false (BETA - 기본값=true)
ServiceLBNodePortControl=true|false (BETA - 기본값=true)
ServiceLoadBalancerClass=true|false (BETA - 기본값=true)
SizeMemoryBackedVolumes=true|false (BETA - 기본값=true)
StatefulSetMinReadySeconds=true|false (ALPHA - 기본값=false)
StorageVersionAPI=true|false (ALPHA - 기본값=false)
StorageVersionHash=true|false (BETA - 기본값=true)
SuspendJob=true|false (BETA - 기본값=true)
TTLAfterFinished=true|false (BETA - 기본값=true)
TopologyAwareHints=true|false (ALPHA - 기본값=false)
TopologyManager=true|false (BETA - 기본값=true)
VolumeCapacityPriority=true|false (ALPHA - 기본값=false)
WinDSR=true|false (ALPHA - 기본값=false)
WinOverlay=true|false (BETA - 기본값=true)
WindowsHostProcessContainers=true|false (ALPHA - 기본값=false)