12장. SelfSubjectAccessReview [authorization.k8s.io/v1]
- 설명
- SelfSubjectAccessReview는 현재 사용자가 작업을 수행할 수 있는지 여부를 확인합니다. spec.namespace를 채우지 않으면 "모든 네임스페이스에서"를 의미합니다. 사용자가 작업을 수행할 수 있는지 항상 확인할 수 있기 때문에 Self는 특별한 경우입니다.
- 유형
-
object
- 필수 항목
-
spec
-
12.1. 사양 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 목록 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| SelfSubjectAccessReviewSpec은 액세스 요청에 대한 설명입니다. ResourceAuthorizationAttributes 및 NonResourceAuthorizationAttributes 중 하나를 설정해야 합니다. |
|
| SubjectAccessReviewStatus |
12.1.1. .spec 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- SelfSubjectAccessReviewSpec은 액세스 요청에 대한 설명입니다. ResourceAuthorizationAttributes 및 NonResourceAuthorizationAttributes 중 하나를 설정해야 합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| NonResourceAttributes에는 Authorizer 인터페이스에 대한 리소스가 아닌 요청에 사용할 수 있는 권한 부여 속성이 포함되어 있습니다. |
|
| ResourceAttributes에는 Authorizer 인터페이스에 리소스 요청에 사용할 수 있는 권한 부여 속성이 포함되어 있습니다. |
12.1.2. .spec.nonResourceAttributes 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- NonResourceAttributes에는 Authorizer 인터페이스에 대한 리소스가 아닌 요청에 사용할 수 있는 권한 부여 속성이 포함되어 있습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| path는 요청의 URL 경로입니다. |
|
| 동사는 표준 HTTP 동사입니다. |
12.1.3. .spec.resourceAttributes 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- ResourceAttributes에는 Authorizer 인터페이스에 리소스 요청에 사용할 수 있는 권한 부여 속성이 포함되어 있습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| FieldSelectorAttributes는 제한된 액세스 필드를 나타냅니다. Webhook 작성자는 * rawSelector 및 요구 사항이 모두 설정되지 않았는지 확인하는 것이 좋습니다 *설정된 경우 *를 설정하지 않거나 rawSelector 필드를 구문 분석하지 않으려는 경우 requirements 필드를 고려하십시오. 이는 다른 CVE-2022-2880을 방지하기 위한 것입니다. (즉, 쿼리를 구문 분석하는 방법에 대한 다른 시스템을 얻는 것은 우리가 원하는 것이 아닌 것이 아님) https://www.oxeye.io/resources/golang-parameter-smuggling-attack를 참조하십시오. 자세한 내용은 https://www.oxeye.io/resources/golang-parameter-smuggling-attack 에서 참조하십시오. kube-apiserver: * rawSelector가 비어 있고 요구 사항이 비어 있으면 요청이 제한되지 않습니다. * rawSelector가 있고 요구 사항이 비어 있는 경우 구문 분석이 성공하면 rawSelector가 구문 분석되고 제한됩니다. * rawSelector가 비어 있고 요구 사항이 있는 경우 요구 사항이 충족되어야 합니다 * rawSelector가 있고 요구 사항이 있는 경우 요청이 유효하지 않습니다. |
|
| group은 리소스의 API 그룹입니다. "*"는 모든 것을 의미합니다. |
|
| LabelSelectorAttributes 레이블 제한 액세스를 나타냅니다. Webhook 작성자는 * rawSelector 및 요구 사항이 모두 설정되지 않았는지 확인하는 것이 좋습니다 *설정된 경우 *를 설정하지 않거나 rawSelector 필드를 구문 분석하지 않으려는 경우 requirements 필드를 고려하십시오. 이는 다른 CVE-2022-2880을 방지하기 위한 것입니다. (즉, 쿼리를 구문 분석하는 방법에 대한 다른 시스템을 얻는 것은 우리가 원하는 것이 아닌 것이 아님) https://www.oxeye.io/resources/golang-parameter-smuggling-attack를 참조하십시오. 자세한 내용은 https://www.oxeye.io/resources/golang-parameter-smuggling-attack 에서 참조하십시오. kube-apiserver: * rawSelector가 비어 있고 요구 사항이 비어 있으면 요청이 제한되지 않습니다. * rawSelector가 있고 요구 사항이 비어 있는 경우 구문 분석이 성공하면 rawSelector가 구문 분석되고 제한됩니다. * rawSelector가 비어 있고 요구 사항이 있는 경우 요구 사항이 충족되어야 합니다 * rawSelector가 있고 요구 사항이 있는 경우 요청이 유효하지 않습니다. |
|
| name은 "get"에 대해 요청되거나 "삭제"에 대해 요청된 리소스의 이름입니다. ""(비어 있음)는 모두 의미합니다. |
|
| namespace는 요청된 작업의 네임스페이스입니다. 현재는 LocalSubjectAccessReviews ""(비어 있음)에 대해 네임스페이스와 모든 네임스페이스 ""(빈)가 기본적으로 비어 있는 경우 클러스터 범위 리소스 ""(빈)는 SubjectAccessReview 또는 SelfSubjectAccessReview의 네임스페이스 범위 리소스에 대해 "all"을 의미합니다. |
|
| 리소스는 기존 리소스 유형 중 하나입니다. "*"는 모든 것을 의미합니다. |
|
| 하위 리소스는 기존 리소스 유형 중 하나입니다. ""는 none을 의미합니다. |
|
| 동사는 get, list, watch, create, update, delete, proxy와 같은 kubernetes 리소스 API 동사입니다. "*"는 모든 것을 의미합니다. |
|
| 버전은 리소스의 API 버전입니다. "*"는 모든 것을 의미합니다. |
12.1.4. .spec.resourceAttributes.fieldSelector 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- FieldSelectorAttributes는 제한된 액세스 필드를 나타냅니다. Webhook 작성자는 * rawSelector 및 요구 사항이 모두 설정되지 않았는지 확인하는 것이 좋습니다 *설정된 경우 *를 설정하지 않거나 rawSelector 필드를 구문 분석하지 않으려는 경우 requirements 필드를 고려하십시오. 이는 다른 CVE-2022-2880을 방지하기 위한 것입니다. (즉, 쿼리를 구문 분석하는 방법에 대한 다른 시스템을 얻는 것은 우리가 원하는 것이 아닌 것이 아님) https://www.oxeye.io/resources/golang-parameter-smuggling-attack를 참조하십시오. 자세한 내용은 https://www.oxeye.io/resources/golang-parameter-smuggling-attack 에서 참조하십시오. kube-apiserver: * rawSelector가 비어 있고 요구 사항이 비어 있으면 요청이 제한되지 않습니다. * rawSelector가 있고 요구 사항이 비어 있는 경우 구문 분석이 성공하면 rawSelector가 구문 분석되고 제한됩니다. * rawSelector가 비어 있고 요구 사항이 있는 경우 요구 사항이 충족되어야 합니다 * rawSelector가 있고 요구 사항이 있는 경우 요청이 유효하지 않습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| rawSelector는 쿼리 매개변수에 포함될 필드 선택기의 직렬화입니다. Webhook 구현은 rawSelector를 무시하는 것이 좋습니다. kube-apiserver의 *SubjectAccessReview는 요구 사항이 없는 한 rawSelector를 구문 분석합니다. |
| 요구 사항은 필드 선택기를 구문 분석한 해석입니다. 리소스 인스턴스가 선택기와 일치하도록 모든 요구 사항을 충족해야 합니다. Webhook 구현은 요구 사항을 처리해야 하지만 이를 처리하는 방법은 Webhook에 따라 다릅니다. 요구 사항은 요청을 제한할 수 있기 때문에 요구 사항이 이해되지 않는 경우 무제한 요청으로 권한을 부여하는 것이 안전합니다. |
12.1.5. .spec.resourceAttributes.labelSelector 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- LabelSelectorAttributes 레이블 제한 액세스를 나타냅니다. Webhook 작성자는 * rawSelector 및 요구 사항이 모두 설정되지 않았는지 확인하는 것이 좋습니다 *설정된 경우 *를 설정하지 않거나 rawSelector 필드를 구문 분석하지 않으려는 경우 requirements 필드를 고려하십시오. 이는 다른 CVE-2022-2880을 방지하기 위한 것입니다. (즉, 쿼리를 구문 분석하는 방법에 대한 다른 시스템을 얻는 것은 우리가 원하는 것이 아닌 것이 아님) https://www.oxeye.io/resources/golang-parameter-smuggling-attack를 참조하십시오. 자세한 내용은 https://www.oxeye.io/resources/golang-parameter-smuggling-attack 에서 참조하십시오. kube-apiserver: * rawSelector가 비어 있고 요구 사항이 비어 있으면 요청이 제한되지 않습니다. * rawSelector가 있고 요구 사항이 비어 있는 경우 구문 분석이 성공하면 rawSelector가 구문 분석되고 제한됩니다. * rawSelector가 비어 있고 요구 사항이 있는 경우 요구 사항이 충족되어야 합니다 * rawSelector가 있고 요구 사항이 있는 경우 요청이 유효하지 않습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| rawSelector는 쿼리 매개변수에 포함될 필드 선택기의 직렬화입니다. Webhook 구현은 rawSelector를 무시하는 것이 좋습니다. kube-apiserver의 *SubjectAccessReview는 요구 사항이 없는 한 rawSelector를 구문 분석합니다. |
| 요구 사항은 라벨 선택기를 구문 분석한 해석입니다. 리소스 인스턴스가 선택기와 일치하도록 모든 요구 사항을 충족해야 합니다. Webhook 구현은 요구 사항을 처리해야 하지만 이를 처리하는 방법은 Webhook에 따라 다릅니다. 요구 사항은 요청을 제한할 수 있기 때문에 요구 사항이 이해되지 않는 경우 무제한 요청으로 권한을 부여하는 것이 안전합니다. |
12.1.6. .status 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- SubjectAccessReviewStatus
- 유형
-
object
- 필수 항목
-
허용됨
-
속성 | 유형 | 설명 |
---|---|---|
|
| 허용되는 것이 필요합니다. 작업이 허용되면 true이고, 그렇지 않으면 false입니다. |
|
| 거부됨은 선택 사항입니다. 작업이 거부되면 true이고, 그렇지 않으면 false입니다. 허용되는 것이 모두 false이고 거부된 경우 승인자는 작업을 승인할지 여부에 대한 의견이 없습니다. Allowed가 true인 경우 거부되지 않을 수 있습니다. |
|
| evaluationError는 권한 부여 확인 중에 일부 오류가 발생했음을 나타냅니다. 오류가 발생하여 권한 부여 상태를 계속 확인할 수 있습니다. 예를 들어 RBAC는 역할을 누락할 수 있지만 충분한 역할이 여전히 존재하며 요청에 대한 이유에 바인딩됩니다. |
|
| 이유는 선택 사항입니다. 요청이 허용 또는 거부된 이유를 나타냅니다. |