검색

21.3. 보안 토큰 서비스 클러스터에 AWS Load Balancer Operator 설치

download PDF

STS(Security Token Service) 클러스터에 AWS Load Balancer Operator를 설치할 수 있습니다.

AWS Load Balancer Operator는 CredentialsRequest 를 사용하여 Operator 및 각 AWSLoadBalancerController 인스턴스를 부트스트랩합니다. AWS Load Balancer Operator는 필요한 시크릿이 생성되고 사용 가능할 때까지 기다립니다. Cloud Credential Operator는 STS 클러스터에서 자동으로 시크릿을 프로비저닝하지 않습니다. ccoctl 바이너리를 사용하여 인증 정보 시크릿을 수동으로 설정해야 합니다.

Cloud Credential Operator를 사용하여 인증 정보 시크릿을 프로비저닝하지 않으려면 AWS load Balancer Controller CR(사용자 정의 리소스)에 인증 정보 시크릿을 지정하여 STS 클러스터에서 AWSLoadBalancerController 인스턴스를 구성할 수 있습니다.

21.3.1. 보안 토큰 서비스 클러스터에서 AWS Load Balancer Operator 부트스트랩

사전 요구 사항

  • ccoctl 바이너리를 추출하고 준비해야 합니다.

절차

  1. 다음 명령을 실행하여 aws-load-balancer-operator 네임스페이스를 생성합니다.

    $ oc create namespace aws-load-balancer-operator
  2. AWS Load Balancer Operator의 CredentialsRequest CR(사용자 정의 리소스)을 다운로드하고 다음 명령을 실행하여 저장할 디렉터리를 생성합니다.

    $ curl --create-dirs -o <path-to-credrequests-dir>/cr.yaml https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/main/hack/operator-credentials-request.yaml
  3. ccoctl 툴을 사용하여 다음 명령을 실행하여 AWS Load Balancer Operator의 CredentialsRequest 오브젝트를 처리합니다.

    $ ccoctl aws create-iam-roles \
        --name <name> --region=<aws_region> \
        --credentials-requests-dir=<path-to-credrequests-dir> \
        --identity-provider-arn <oidc-arn>
  4. 다음 명령을 실행하여 클러스터의 매니페스트 디렉터리에 생성된 보안을 적용합니다.

    $ ls manifests/*-credentials.yaml | xargs -I{} oc apply -f {}
  5. 다음 명령을 실행하여 AWS Load Balancer Operator의 인증 정보 시크릿이 생성되었는지 확인합니다.

    $ oc -n aws-load-balancer-operator get secret aws-load-balancer-operator --template='{{index .data "credentials"}}' | base64 -d

    출력 예

    [default]
    sts_regional_endpoints = regional
    role_arn = arn:aws:iam::999999999999:role/aws-load-balancer-operator-aws-load-balancer-operator
    web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token

21.3.2. 관리형 CredentialsRequest 오브젝트를 사용하여 보안 토큰 서비스 클러스터에서 AWS Load Balancer Operator 구성

사전 요구 사항

  • ccoctl 바이너리를 추출하고 준비해야 합니다.

절차

  1. AWS Load Balancer Operator는 각 AWSLoadBalancerController 사용자 정의 리소스(CR)의 openshift-cloud-credential-operator 네임스페이스에 CredentialsRequest 오브젝트를 생성합니다. 다음 명령을 실행하여 생성된 CredentialsRequest 오브젝트를 디렉터리에 추출 및 저장할 수 있습니다.

    $ oc get credentialsrequest -n openshift-cloud-credential-operator  \
        aws-load-balancer-controller-<cr-name> -o yaml > <path-to-credrequests-dir>/cr.yaml 1
    1
    aws-load-balancer-controller-<cr-name > 매개변수는 AWS Load Balancer Operator가 생성한 인증 정보 요청 이름을 지정합니다. cr-name 은 AWS Load Balancer Controller 인스턴스의 이름을 지정합니다.
  2. ccoctl 도구를 사용하여 다음 명령을 실행하여 credrequests 디렉터리의 모든 CredentialsRequest 오브젝트를 처리합니다.

    $ ccoctl aws create-iam-roles \
        --name <name> --region=<aws_region> \
        --credentials-requests-dir=<path-to-credrequests-dir> \
        --identity-provider-arn <oidc-arn>
  3. 다음 명령을 실행하여 매니페스트 디렉터리에 생성된 보안을 클러스터에 적용합니다.

    $ ls manifests/*-credentials.yaml | xargs -I{} oc apply -f {}
  4. aws-load-balancer-controller Pod가 생성되었는지 확인합니다.

    $ oc -n aws-load-balancer-operator get pods
    NAME                                                            READY   STATUS    RESTARTS   AGE
    aws-load-balancer-controller-cluster-9b766d6-gg82c              1/1     Running   0          137m
    aws-load-balancer-operator-controller-manager-b55ff68cc-85jzg   2/2     Running   0          3h26m

21.3.3. 특정 인증 정보를 사용하여 보안 토큰 서비스 클러스터에서 AWS Load Balancer Operator 구성

AWS Load Balancer Controller CR(사용자 정의 리소스)에서 spec.credentials 필드를 사용하여 인증 정보 시크릿을 지정할 수 있습니다. 컨트롤러의 사전 정의된 CredentialsRequest 오브젝트를 사용하여 필요한 역할을 확인할 수 있습니다.

사전 요구 사항

  • ccoctl 바이너리를 추출하고 준비해야 합니다.

절차

  1. AWS Load Balancer 컨트롤러의 CredentialsRequest CR(사용자 정의 리소스)을 다운로드하고 다음 명령을 실행하여 저장할 디렉터리를 생성합니다.

    $ curl --create-dirs -o <path-to-credrequests-dir>/cr.yaml https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/main/hack/controller/controller-credentials-request.yaml
  2. ccoctl 도구를 사용하여 컨트롤러의 CredentialsRequest 오브젝트를 처리합니다.

    $ ccoctl aws create-iam-roles \
            --name <name> --region=<aws_region> \
            --credentials-requests-dir=<path-to-credrequests-dir> \
            --identity-provider-arn <oidc-arn>
  3. 클러스터에 시크릿을 적용합니다.

    $ ls manifests/*-credentials.yaml | xargs -I{} oc apply -f {}
  4. 컨트롤러에서 사용할 인증 정보 시크릿이 생성되었는지 확인합니다.

    $ oc -n aws-load-balancer-operator get secret aws-load-balancer-controller-manual-cluster --template='{{index .data "credentials"}}' | base64 -d

    출력 예

    [default]
        sts_regional_endpoints = regional
        role_arn = arn:aws:iam::999999999999:role/aws-load-balancer-operator-aws-load-balancer-controller
        web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token

  5. 다음과 같이 AWSLoadBalancerController 리소스 YAML 파일 (예: sample-aws-lb-lb-ECDHE-creds.yaml )을 만듭니다.

    apiVersion: networking.olm.openshift.io/v1alpha1
    kind: AWSLoadBalancerController 1
    metadata:
      name: cluster 2
    spec:
      credentials:
        name: <secret-name> 3
    1
    AWSLoadBalancerController 리소스를 정의합니다.
    2
    AWS Load Balancer Controller 인스턴스 이름을 정의합니다. 이 인스턴스 이름은 모든 관련 리소스에 접미사로 추가됩니다.
    3
    컨트롤러에서 사용하는 AWS 인증 정보가 포함된 시크릿 이름을 지정합니다.

21.3.4. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.