Menu Close

12장. 범위 지정 토큰

12.1. 범위 지정 토큰 정보

범위가 지정된 토큰을 생성하여 일부 권한을 다른 사용자나 서비스 계정에 위임할 수 있습니다. 예를 들어, 프로젝트 관리자가 Pod 생성 권한을 위임하고자 할 수 있습니다.

범위가 지정된 토큰은 지정된 사용자로 확인되지만 범위에 따라 특정 작업으로 제한되는 토큰에 해당합니다. cluster-admin 역할의 사용자만 범위가 지정된 토큰을 생성할 수 있습니다.

범위는 토큰의 범위 집합을 PolicyRules 집합으로 변환하여 평가합니다. 그러면 요청이 해당 규칙과 대조됩니다. 추가적인 권한 확인을 위해 "일반"권한 부여자에게 전달하려면 요청 속성이 하나 이상의 범위 규칙과 일치해야 합니다.

12.1.1. 사용자 범위

사용자 범위는 지정된 사용자에 대한 정보를 얻는 데 중점을 둡니다. 의도 기반이므로 다음과 같이 규칙이 자동으로 생성됩니다.

  • user:full - 모든 사용자 권한에 API에 대한 전체 읽기/쓰기 액세스를 허용합니다.
  • user:info - 사용자 정보(예: 이름, 그룹)에 대한 읽기 전용 액세스를 허용합니다.
  • user:check-access - self-localsubjectaccessreviewsself-subjectaccessreviews에 대한 액세스를 허용합니다. 해당 항목은 요청 오브젝트에서 빈 사용자 및 그룹을 전달하는 변수입니다.
  • user:list-projects - 사용자가 액세스할 수 있는 프로젝트를 나열하도록 읽기 전용 액세스를 허용합니다.

12.1.2. 역할 범위

역할 범위를 사용하면 네임스페이스로 필터링되어 지정된 역할과 동일한 수준의 액세스 권한을 가질 수 있습니다.

  • role:<cluster-role name>:<namespace or * for all> - 클러스터 역할에 따라 지정된 규칙으로 범위가 제한되지만, 지정된 네임스페이스에 한합니다.

    참고

    경고: 이 경우 액세스 권한이 에스컬레이션되지 않습니다. 시크릿, 역할 바인딩 및 역할과 같은 리소스에 액세스할 수 있는 역할이더라도 이 범위는 해당 리소스에 대한 액세스를 거부합니다. 따라서 예기치 않은 에스컬레이션을 방지할 수 있습니다. 대부분의 사람들은 edit와 같은 역할을 에스컬레이션되는 역할로 생각하지 않지만 시크릿에 액세스할 수 있는 경우 에스컬레이션됩니다.

  • role:<cluster-role name>:<namespace or * for all>:! - 느낌표를 넣어 이 범위에서 액세스 권한을 에스컬레이션할 수 있다는 점을 제외하면 위의 예와 유사합니다.