19.6. 수명이 짧은 액세스 구성
RHACS(Red Hat Advanced Cluster Security for Kubernetes)는 사용자 인터페이스 및 API 호출에 대한 수명이 짧은 액세스 권한을 구성할 수 있는 기능을 제공합니다.
RHACS 발급 토큰에 대해 OpenID Connect(OIDC) ID 토큰을 교환하여 이를 구성할 수 있습니다.
장기적인 API 토큰보다 수명이 짧은 액세스가 선호되는 CI(Continuous Integration) 사용에 이 방법을 사용하는 것이 좋습니다.
다음 단계에서는 사용자 인터페이스 및 API 호출에 대한 수명이 짧은 액세스를 구성하는 방법에 대한 고급 워크플로를 간략하게 설명합니다.
- 수명이 짧은 RHACS에서 발행한 토큰을 교환하기 위해 OIDC ID 토큰 발행자를 신뢰하도록 RHACS 구성.
- API를 호출하여 수명이 짧은 RHACS 발급 토큰에 대해 OIDC ID 토큰을 교환합니다.
-
권한 에스컬레이션을 방지하기 위해 새 토큰을 생성할 때 역할의 권한은 해당 토큰에 할당할 수 있는 권한을 제한합니다. 예를 들어 Integration 리소스에 대한
읽기
권한만 있는 경우쓰기
권한이 있는 토큰을 생성할 수 없습니다. - 다른 사용자가 사용할 토큰을 생성하는 사용자 지정 역할을 하려면 해당 사용자 지정 역할에 필요한 권한을 할당해야 합니다.
-
CI/CD 파이프라인, 스크립트 및 기타 자동화와 같은 머신 간 통신에 수명이 짧은 토큰을 사용합니다. 또한
roxctl
CLI 또는 API 액세스와 같은 human-to-machine 통신에roxctl central login
명령을 사용합니다. - 대부분의 클라우드 서비스 공급자는 OIDC ID 토큰(예: Microsoft Entra ID, Google Cloud Identity Platform 및 AWS Cognito)을 지원합니다. 이러한 서비스에서 발행한 OIDC ID 토큰은 RHACS 단기 액세스에 사용할 수 있습니다.
19.6.1. OIDC ID 토큰 발행자에 대한 단기 액세스 구성
OpenID Connect(OIDC) ID 토큰 발행자의 단기 액세스 구성을 시작합니다.
프로세스
-
RHACS 포털에서 플랫폼 구성
통합으로 이동합니다. - 인증 토큰 범주로 스크롤한 다음 머신 액세스 구성 을 클릭합니다.
- 구성 생성을 클릭합니다.
다음 중 하나를 선택하여 구성 유형을 선택합니다.
- 임의의 OIDC ID 토큰 발행자를 사용하는 경우 일반 입니다.
- GitHub 작업에서 RHACS에 액세스하려는 경우 GitHub 작업.
- OIDC ID 토큰 발행자를 입력합니다.
구성에서 발행한 토큰 의 토큰 수명을 입력합니다.
참고토큰 수명 형식은 XhYmZs 이며 24 시간 이상 설정할 수 없습니다.
구성에 규칙을 추가합니다.
- 키는 사용할 OIDC 토큰의 클레임입니다.
- 값은 예상되는 OIDC 토큰 클레임 값입니다.
OIDC 토큰 클레임 및 값이 있는 경우 역할에는 토큰에 할당할 역할이 있습니다.
참고규칙은 클레임 값에 따라 역할을 할당하는 인증 공급자 규칙과 유사합니다.
일반적으로 Red Hat은 규칙 내에서 고유하고 변경 불가능한 클레임을 사용할 것을 권장합니다. 일반적인 권장 사항은 OIDC ID 토큰 내에서 하위 클레임을 사용하는 것입니다. OIDC 토큰 클레임에 대한 자세한 내용은 표준 OIDC 클레임 목록을 참조하십시오.
- 저장을 클릭합니다.
19.6.2. ID 토큰 교환
사전 요구 사항
- 유효한 OpenID Connect(OIDC) 토큰이 있습니다.
- 액세스하려는 RHACS 인스턴스에 대한 머신 액세스 구성 을 추가했습니다.
프로세스
POST 요청의 JSON 데이터를 준비합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow { "idToken": "<id_token>" }
{ "idToken": "<id_token>" }
- API /v1/auth/m2m/exchange 에 POST 요청을 보냅니다.
API 응답을 기다립니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow { "accessToken": "<access_token>" }
{ "accessToken": "<access_token>" }
- 반환된 액세스 토큰을 사용하여 RHACS 인스턴스에 액세스합니다.
GitHub Actions 를 사용하는 경우 stackrox/central-login GitHub Action 을 사용할 수 있습니다.