1.3. 수동으로 이미지 레지스트리 구성
GCR을 사용하는 경우 이미지 레지스트리 통합을 수동으로 생성해야 합니다.
1.3.1. OpenShift Container Platform 레지스트리 수동 구성
Red Hat Advanced Cluster Security for Kubernetes를 OpenShift Container Platform 내장 컨테이너 이미지 레지스트리와 통합할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 레지스트리의 인증을 위해 사용자 이름과 암호가 필요합니다.
프로세스
-
RHACS 포털에서 플랫폼 구성
통합으로 이동합니다. - 이미지 통합 섹션에서 Generic Docker Registry 를 선택합니다.
- 새 통합을 클릭합니다.
다음 필드에 대한 세부 정보를 입력합니다.
- Integration Name: 통합의 이름입니다.
- endpoint: 레지스트리의 주소입니다.
- 사용자 이름 및 암호.
- 레지스트리에 연결할 때 TLS 인증서를 사용하지 않는 경우 Disable TLS certificate validation (비보안) 을 선택합니다.
- 테스트 없이 통합 생성 을 선택하여 레지스트리에 대한 연결을 테스트하지 않고 통합을 생성합니다.
- Test 를 선택하여 선택한 레지스트리와 통합이 작동하는지 테스트합니다.
- 저장을 선택합니다.
1.3.2. 수동으로 Amazon Elastic Container Registry 구성
Kubernetes용 Red Hat Advanced Cluster Security를 사용하여 Amazon Elastic Container Registry(ECR) 통합을 수동으로 생성하고 수정할 수 있습니다. Amazon ECR에서 배포하는 경우 Amazon ECR 레지스트리의 통합은 일반적으로 자동으로 생성됩니다. 그러나 자체적으로 통합을 생성하여 배포 외부 이미지를 스캔하는 것이 필요할 수 있습니다. 자동 생성된 통합의 매개변수를 수정할 수도 있습니다. 예를 들어 자동으로 생성된 Amazon ECR 통합에서 사용하는 인증 방법을 변경하여 AssumeRole 인증 또는 기타 권한 부여 모델을 사용할 수 있습니다.
자동으로 생성된 ECR 통합 변경 사항을 지우려면 통합을 삭제하고 Red Hat Advanced Cluster Security for Kubernetes는 Amazon ECR에서 이미지를 배포할 때 자동으로 생성된 매개변수와 함께 새로운 통합을 생성합니다.
사전 요구 사항
-
Amazon IAM(Identity and Access Management) 액세스 키 ID와 시크릿 액세스 키가 있어야 합니다. 또는
kiam
또는kube2iam
과 같은 노드 수준 IAM 프록시를 사용할 수 있습니다. - 액세스 키에는 ECR에 대한 읽기 액세스 권한이 있어야 합니다. 자세한 내용은 How do I create an AWS access key? 에서 참조하십시오.
Red Hat Advanced Cluster Security for Kubernetes를 Amazon Elastic Kubernetes Service(EKS)에서 실행하고 별도의 Amazon 계정의 ECR과 통합하려면 먼저 ECR에 리포지토리 정책 문을 설정해야 합니다. 리포지토리 정책 명령 설정 및 작업에 대한 지침에 따라 Amazon ECR API 작업 의 다음 범위를 선택합니다.
- ecr:BatchCheckLayerAvailability
- ecr:BatchGetImage
- ecr:DescribeImages
- ecr:GetDownloadUrlForLayer
- ecr:ListImages
프로세스
-
RHACS 포털에서 플랫폼 구성
통합으로 이동합니다. - 이미지 통합 섹션에서 Amazon ECR 을 선택합니다.
- 새로 만들기를 클릭하거나 자동으로 생성된 통합 중 하나를 클릭하여 엽니다.
다음 필드에 대한 세부 정보를 입력하거나 수정합니다.
- 저장된 인증 정보 업데이트: 액세스 키 및 암호와 같은 인증 정보를 업데이트하지 않고 통합을 수정하는 경우 이 상자를 지웁니다.
- Integration Name: 통합의 이름입니다.
- 레지스트리 ID: 레지스트리의 ID입니다.
- endpoint: 레지스트리의 주소입니다. 이 값은 Amazon ECR에 프라이빗 VPC(Virtual Private Cloud) 끝점을 사용하는 경우에만 필요합니다. AssumeRole 옵션을 선택하면 이 필드가 활성화되지 않습니다.
-
region : 레지스트리의 리전 입니다(예:
us-west-1
).
- IAM을 사용하는 경우 컨테이너 IAM 역할 사용을 선택합니다. 또는 Use Container IAM 역할 상자를 지우고 Access 키 ID 및 시크릿 액세스 키를 입력합니다.
AssumeRole 인증을 사용하는 경우 AssumeRole 사용을 선택하고 다음 필드에 대한 세부 정보를 입력합니다.
- AssumeRole ID: 가정할 역할의 ID입니다.
- AssumeRole 외부 ID (선택 사항): AssumeRole이 있는 외부 ID 를 사용하는 경우 여기에서 입력할 수 있습니다.
- 테스트 없이 통합 생성 을 선택하여 레지스트리에 대한 연결을 테스트하지 않고 통합을 생성합니다.
- Test 를 선택하여 선택한 레지스트리와 통합이 작동하는지 테스트합니다.
- 저장을 선택합니다.
1.3.2.1. Amazon ECR에서 assumerole 사용
AssumeRole 을 사용하여 각 사용자의 권한을 수동으로 구성하지 않고도 AWS 리소스에 대한 액세스 권한을 부여할 수 있습니다. 대신 원하는 권한으로 역할을 정의하여 사용자에게 해당 역할을 가정할 수 있는 액세스 권한을 부여할 수 있습니다. AssumeRole
을 사용하면 보다 세분화된 권한을 부여, 취소 또는 관리할 수 있습니다.
1.3.2.1.1. 컨테이너 IAM을 사용하여 AssumeRole 구성
Red Hat Advanced Cluster Security for Kubernetes에서 AssumeRole을 사용하려면 먼저 구성해야 합니다.
프로세스
EKS 클러스터의 IAM OIDC 공급자를 활성화합니다.
$ eksctl utils associate-iam-oidc-provider --cluster <cluster name> --approve
- EKS 클러스터에 대한 IAM 역할을 생성합니다.
새로 생성된 역할을 서비스 계정과 연결합니다.
$ kubectl -n stackrox annotate sa central eks.amazonaws.com/role-arn=arn:aws:iam::67890:role/<role-name>
Central을 다시 시작하여 변경 사항을 적용합니다.
$ kubectl -n stackrox delete pod -l app=central
역할이 필요에 따라 다른 역할을 가정할 수 있는 정책에 역할을 할당합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::<ecr-registry>:role/<assumerole-readonly>" 1 } ] }
- 1
- &
lt;assumerole-readonly&
gt;를 가정하려는 역할로 바꿉니다.
가정할 역할의 신뢰 관계를 업데이트합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<ecr-registry>:role/<role-name>" 1 ] }, "Action": "sts:AssumeRole" } ] }
- 1
- &
lt;role-name
>은 이전에 만든 새 역할과 일치해야 합니다.
1.3.2.1.2. 컨테이너 IAM 없이 AssumeRole 구성
컨테이너 IAM 없이 AssumeRole을 사용하려면 액세스 권한과 시크릿 키를 사용하여 프로그래밍 방식으로 액세스할 수 있는 AWS 사용자로 인증해야 합니다.
프로세스
AssumeRole 사용자가 ECR 레지스트리와 동일한 계정에 있는지 여부에 따라 다음 중 하나를 수행해야합니다.
역할을 가정하려는 사용자가 ECR 레지스트리와 동일한 계정에 있는 경우 원하는 권한으로 새 역할을 생성합니다.
참고역할을 생성할 때 필요에 따라 신뢰할 수 있는 엔터티를 선택할 수 있습니다. 그러나 생성 후 수정해야 합니다.
또는 ECR 레지스트리에 액세스할 수 있는 권한을 제공하고 사용자가 ECR 레지스트리와 다른 계정에 있는 경우 신뢰 관계를 정의해야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::<ecr-registry>:role/<assumerole-readonly>" 1 } ] }
- 1
- &
lt;assumerole-readonly&
gt;를 가정하려는 역할로 바꿉니다.
Principal 필드에 사용자 ARN을 포함하여 역할의 신뢰 관계를 구성합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<ecr-registry>:user/<role-name>" ] }, "Action": "sts:AssumeRole" } ] }
1.3.2.1.3. RHACS에서 AssumeRole 구성
ECR에서 AssumeRole을 구성한 후 AssumeRole을 사용하여 Kubernetes용 Red Hat Advanced Cluster Security를 Amazon Elastic Container Registry(ECR)와 통합할 수 있습니다.
프로세스
-
RHACS 포털에서 플랫폼 구성
통합으로 이동합니다. - 이미지 통합 섹션에서 Amazon ECR 을 선택합니다.
- 새 통합을 클릭합니다.
다음 필드에 대한 세부 정보를 입력합니다.
- Integration Name: 통합의 이름입니다.
- 레지스트리 ID: 레지스트리의 ID입니다.
-
region : 레지스트리의 리전 입니다(예:
us-west-1
).
- IAM을 사용하는 경우 컨테이너 IAM 역할 사용을 선택합니다. 그렇지 않으면 사용자 지정 IAM 역할 사용 상자를 지우고 Access 키 ID 및 시크릿 액세스 키를 입력합니다.
AssumeRole을 사용하는 경우 AssumeRole 사용을 선택하고 다음 필드에 대한 세부 정보를 입력합니다.
- AssumeRole ID: 가정할 역할의 ID입니다.
- AssumeRole 외부 ID (선택 사항): AssumeRole이 있는 외부 ID 를 사용하는 경우 여기에서 입력할 수 있습니다.
- Test 를 선택하여 선택한 레지스트리와 통합이 작동하는지 테스트합니다.
- 저장을 선택합니다.
1.3.3. 수동으로 Google 컨테이너 레지스트리 구성
Red Hat Advanced Cluster Security for Kubernetes를 Google Container Registry(GCR)와 통합할 수 있습니다.
사전 요구 사항
- 인증을 위해 워크로드 ID 또는 서비스 계정 키가 필요합니다.
- 연결된 서비스 계정에는 레지스트리에 대한 액세스 권한이 있어야 합니다. GCR에 대한 사용자 및 기타 프로젝트 액세스 권한을 부여하는 방법에 대한 정보는 액세스 제어 구성 을 참조하십시오.
GCR Container Analysis 를 사용하는 경우 서비스 계정에 다음 역할을 부여해야 합니다.
- 컨테이너 분석 노트 뷰어
- 컨테이너 분석 탐색 뷰어
- 스토리지 오브젝트 뷰어
프로세스
-
RHACS 포털에서 플랫폼 구성
통합으로 이동합니다. - 이미지 통합 섹션에서 Google Container Registry 를 선택합니다.
- 새 통합을 클릭합니다.
다음 필드에 대한 세부 정보를 입력합니다.
- Integration Name: 통합의 이름입니다.
- 유형: 레지스트리 를 선택합니다.
- registry Endpoint: 레지스트리의 주소입니다.
- 프로젝트: Google Cloud 프로젝트 이름입니다.
- 사용 워크로드 ID: 워크로드 ID를 사용하여 인증하십시오.
- 서비스 계정 키(JSON): 인증을 위한 서비스 계정 키입니다.
- 테스트 없이 통합 생성 을 선택하여 레지스트리에 대한 연결을 테스트하지 않고 통합을 생성합니다.
- Test 를 선택하여 선택한 레지스트리와 통합이 작동하는지 테스트합니다.
- 저장을 선택합니다.
1.3.4. 수동으로 Google Artifact Registry 구성
Red Hat Advanced Cluster Security for Kubernetes를 Google Artifact Registry와 통합할 수 있습니다.
사전 요구 사항
- 인증을 위해 워크로드 ID 또는 서비스 계정 키가 필요합니다.
-
연결된 서비스 계정에는 Artifact Registry Reader Identity and Access Management(IAM) 역할
roles/artifactregistry.reader
가 있어야 합니다.
프로세스
-
RHACS 포털에서 플랫폼 구성
통합으로 이동합니다. - 이미지 통합 섹션에서 Google Artifact Registry 를 선택합니다.
- 새 통합을 클릭합니다.
다음 필드에 대한 세부 정보를 입력합니다.
- Integration Name: 통합의 이름입니다.
- registry endpoint: 레지스트리의 주소입니다.
- 프로젝트: Google Cloud 프로젝트 이름입니다.
- 사용 워크로드 ID: 워크로드 ID를 사용하여 인증하십시오.
- 서비스 계정 키(JSON): 인증을 위한 서비스 계정 키입니다.
- 테스트 없이 통합 생성 을 선택하여 레지스트리에 대한 연결을 테스트하지 않고 통합을 생성합니다.
- Test 를 선택하여 선택한 레지스트리와 통합이 작동하는지 테스트합니다.
- 저장을 선택합니다.
1.3.5. Microsoft Azure Container Registry 수동 구성
Red Hat Advanced Cluster Security for Kubernetes를 Microsoft Azure Container Registry와 통합할 수 있습니다.
사전 요구 사항
- 인증을 위한 사용자 이름과 암호가 있어야 합니다.
프로세스
-
RHACS 포털에서 플랫폼 구성
통합으로 이동합니다. - 이미지 통합 섹션에서 Microsoft Azure Container Registry 를 선택합니다.
- 새 통합을 클릭합니다.
다음 필드에 대한 세부 정보를 입력합니다.
- Integration Name: 통합의 이름입니다.
- endpoint: 레지스트리의 주소입니다.
- 사용자 이름 및 암호.
- 테스트 없이 통합 생성 을 선택하여 레지스트리에 대한 연결을 테스트하지 않고 통합을 생성합니다.
- Test 를 선택하여 선택한 레지스트리와 통합이 작동하는지 테스트합니다.
- 저장을 선택합니다.
1.3.6. JFrog Artifactory 수동 구성
Red Hat Advanced Cluster Security for Kubernetes를 JFrog Artifactory와 통합할 수 있습니다.
사전 요구 사항
- JFrog Artifactory 인증을 위한 사용자 이름과 암호가 있어야 합니다.
프로세스
-
RHACS 포털에서 플랫폼 구성
통합으로 이동합니다. - 이미지 통합 섹션에서 JFrog Artifactory 를 선택합니다.
- 새 통합을 클릭합니다.
다음 필드에 대한 세부 정보를 입력합니다.
- Integration Name: 통합의 이름입니다.
- endpoint: 레지스트리의 주소입니다.
- 사용자 이름 및 암호.
- 레지스트리에 연결할 때 TLS 인증서를 사용하지 않는 경우 Disable TLS certificate validation (비보안) 을 선택합니다.
- 테스트 없이 통합 생성 을 선택하여 레지스트리에 대한 연결을 테스트하지 않고 통합을 생성합니다.
- Test 를 선택하여 선택한 레지스트리와 통합이 작동하는지 테스트합니다.
- 저장을 선택합니다.
1.3.7. 수동으로 Quay 컨테이너 레지스트리 구성
RHACS(Red Hat Advanced Cluster Security for Kubernetes)를 Quay Container Registry와 통합할 수 있습니다. 다음 방법을 사용하여 Quay와 통합할 수 있습니다.
- Quay 공용 리포지토리(registry)와 통합: 이 방법은 인증이 필요하지 않습니다.
- 로봇 계정을 사용하여 Quay 프라이빗 레지스트리와 통합: 이 방법을 사용하려면 Quay와 함께 사용할 로봇 계정을 만들어야 합니다(권장). 자세한 내용은 Quay 설명서 를 참조하십시오.
- RHACS 스캐너 대신 Quay 스캐너를 사용하기 위해 Quay와 통합: 이 방법은 API를 사용하며 인증을 위해 OAuth 토큰이 필요합니다. "추가 리소스" 섹션의 "이미지 스캔하기 위해 Quay Container Registry와 함께"를 참조하십시오.
사전 요구 사항
- Quay 프라이빗 레지스트리로 인증하려면 로봇 계정 또는 OAuth 토큰(더 이상 사용되지 않음)과 연결된 인증 정보가 필요합니다.
프로세스
-
RHACS 포털에서 플랫폼 구성
통합으로 이동합니다. - 이미지 통합 섹션에서 Red Hat Quay.io 를 선택합니다.
- 새 통합을 클릭합니다.
- Integration 이름을 입력합니다.
끝점 또는 레지스트리 주소를 입력합니다.
- Quay 공용 리포지토리와 통합하려는 경우 유형 에서 레지스트리 를 선택한 다음 다음 단계로 이동합니다.
Quay 프라이빗 레지스트리와 통합하려는 경우 유형 에서 레지스트리 를 선택하고 다음 필드에 정보를 입력합니다.
-
robot username : Quay 로봇 계정을 사용하여 레지스트리에 액세스하는 경우 <
namespace>+<accountname> 형식으로 사용자 이름을 입력합니다
. - robot password : Quay 로봇 계정을 사용하여 레지스트리에 액세스하는 경우 로봇 계정 사용자 이름의 암호를 입력합니다.
- OAuth 토큰: OAuth 토큰(더 이상 사용되지 않음)을 사용하여 레지스트리에 액세스하는 경우 이 필드에 입력합니다.
-
robot username : Quay 로봇 계정을 사용하여 레지스트리에 액세스하는 경우 <
- 선택 사항: 레지스트리에 연결할 때 TLS 인증서를 사용하지 않는 경우 Disable TLS certificate validation (비보안) 을 선택합니다.
- 선택 사항: 테스트 없이 통합을 생성하려면 테스트 없이 통합 생성 을 선택합니다.
- 저장을 선택합니다.
Quay 통합을 편집하지만 인증 정보를 업데이트하지 않으려면 저장된 인증 정보 업데이트가 선택되지 않았는지 확인합니다.