2.3. AWS Load Balancer Operator를 위한 AWS STS 클러스터 준비


보안 토큰 서비스(STS)를 사용하는 클러스터에 Amazon Web Services(AWS) 로드 밸런서 운영자를 설치할 수 있습니다. Operator를 설치하기 전에 다음 단계에 따라 클러스터를 준비하세요.

AWS 로드 밸런서 운영자는 CredentialsRequest 객체를 사용하여 운영자와 AWS 로드 밸런서 컨트롤러를 부트스트랩합니다. AWS 로드 밸런서 운영자는 필요한 비밀이 생성되어 사용할 수 있을 때까지 기다립니다.

2.3.1. 사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • 클러스터의 인프라 ID를 알고 있습니다. 이 ID를 표시하려면 CLI에서 다음 명령을 실행하세요.

    $ oc get infrastructure cluster -o=jsonpath="{.status.infrastructureName}"
    Copy to Clipboard Toggle word wrap
  • 클러스터의 OpenID Connect(OIDC) DNS 정보를 알고 있습니다. 이 정보를 표시하려면 CLI에 다음 명령을 입력하세요.

    $ oc get authentication.config cluster -o=jsonpath="{.spec.serviceAccountIssuer}" 
    1
    Copy to Clipboard Toggle word wrap
    1
    OIDC DNS의 예는 https://rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f 입니다.
  • AWS 웹 콘솔에 로그인하고 IAM 액세스 관리 ID 공급자 로 이동하여 OIDC Amazon 리소스 이름(ARN) 정보를 찾았습니다. OIDC ARN의 예는 arn:aws:iam::777777777777:oidc-provider/<oidc_dns_url> 입니다.

2.3.2. AWS Load Balancer Operator에 대한 IAM 역할 생성

STS를 사용하는 클러스터에 AWS Load Balancer Operator를 성공적으로 설치하려면 추가적인 Amazon Web Services(AWS) Identity and Access Management(IAM) 역할이 필요합니다. 서브넷 및 VPC(가상 사설 클라우드)와 상호 작용하려면 IAM 역할이 필요합니다. AWS Load Balancer Operator는 IAM 역할로 CredentialsRequest 객체를 생성하여 자체적으로 부트스트랩합니다.

다음 옵션을 사용하여 IAM 역할을 만들 수 있습니다.

사용자 환경이 ccoctl 명령을 지원하지 않는 경우 AWS CLI를 사용하세요.

2.3.2.1. Cloud Credential Operator 유틸리티를 사용하여 AWS IAM 역할 생성

Cloud Credential Operator 유틸리티( ccoctl )를 사용하여 AWS Load Balancer Operator에 대한 AWS IAM 역할을 생성할 수 있습니다. AWS IAM 역할은 서브넷 및 VPC(가상 사설 클라우드)와 상호 작용합니다.

사전 요구 사항

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

프로세스

  1. 다음 명령을 실행하여 CredentialsRequest 사용자 정의 리소스(CR)를 다운로드하고 디렉토리에 저장합니다.

    $ curl --create-dirs -o <credentials_requests_dir>/operator.yaml https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/main/hack/operator-credentials-request.yaml
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 ccoctl 유틸리티를 사용하여 AWS IAM 역할을 만듭니다.

    $ ccoctl aws create-iam-roles \
        --name <name> \
        --region=<aws_region> \
        --credentials-requests-dir=<credentials_requests_dir> \
        --identity-provider-arn <oidc_arn>
    Copy to Clipboard Toggle word wrap

    출력 예

    2023/09/12 11:38:57 Role arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-operator created 
    1
    
    2023/09/12 11:38:57 Saved credentials configuration to: /home/user/<credentials_requests_dir>/manifests/aws-load-balancer-operator-aws-load-balancer-operator-credentials.yaml
    2023/09/12 11:38:58 Updated Role policy for Role <name>-aws-load-balancer-operator-aws-load-balancer-operator created
    Copy to Clipboard Toggle word wrap

    1
    AWS Load Balancer Operator에 대해 생성된 AWS IAM 역할의 Amazon 리소스 이름(ARN)을 기록해 두세요(예 : arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-operator) .
    참고

    AWS IAM 역할 이름의 길이는 12자 이하여야 합니다.

2.3.2.2. AWS CLI를 사용하여 AWS IAM 역할 생성

AWS 명령줄 인터페이스를 사용하여 AWS Load Balancer Operator에 대한 IAM 역할을 생성할 수 있습니다. IAM 역할은 서브넷 및 VPC(가상 사설 클라우드)와 상호 작용하는 데 사용됩니다.

사전 요구 사항

  • AWS 명령줄 인터페이스( aws )에 액세스할 수 있어야 합니다.

프로세스

  1. 다음 명령을 실행하여 ID 공급자를 사용하여 신뢰 정책 파일을 생성합니다.

    $ cat <<EOF > albo-operator-trust-policy.json
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Federated": "<oidc_arn>" 
    1
    
                },
                "Action": "sts:AssumeRoleWithWebIdentity",
                "Condition": {
                    "StringEquals": {
                        "<cluster_oidc_endpoint>:sub": "system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager" 
    2
    
                    }
                }
            }
        ]
    }
    EOF
    Copy to Clipboard Toggle word wrap
    1
    OIDC ID 공급자의 Amazon 리소스 이름(ARN)을 지정합니다(예 : arn:aws:iam::777777777777:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f) .
    2
    AWS Load Balancer Controller에 대한 서비스 계정을 지정합니다. <cluster_oidc_endpoint> 의 예는 rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f 입니다.
  2. 다음 명령을 실행하여 생성된 신뢰 정책으로 IAM 역할을 만듭니다.

    $ aws iam create-role --role-name albo-operator --assume-role-policy-document file://albo-operator-trust-policy.json
    Copy to Clipboard Toggle word wrap

    출력 예

    ROLE	arn:aws:iam::<aws_account_number>:role/albo-operator	2023-08-02T12:13:22Z 
    1
    
    ASSUMEROLEPOLICYDOCUMENT	2012-10-17
    STATEMENT	sts:AssumeRoleWithWebIdentity	Allow
    STRINGEQUALS	system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-controller-manager
    PRINCIPAL	arn:aws:iam:<aws_account_number>:oidc-provider/<cluster_oidc_endpoint>
    Copy to Clipboard Toggle word wrap

    1
    AWS Load Balancer Operator에 대해 생성된 AWS IAM 역할의 ARN을 기록해 두세요(예 : arn:aws:iam::777777777777:role/albo-operator ) .
  3. 다음 명령을 실행하여 AWS Load Balancer Operator에 대한 권한 정책을 다운로드하세요.

    $ curl -o albo-operator-permission-policy.json https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/main/hack/operator-permission-policy.json
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하여 AWS Load Balancer Controller에 대한 권한 정책을 IAM 역할에 연결합니다.

    $ aws iam put-role-policy --role-name albo-operator --policy-name perms-policy-albo-operator --policy-document file://albo-operator-permission-policy.json
    Copy to Clipboard Toggle word wrap

2.3.3. AWS Load Balancer Operator에 대한 ARN 역할 구성

AWS Load Balancer Operator에 대한 Amazon 리소스 이름(ARN) 역할을 환경 변수로 구성할 수 있습니다. CLI를 사용하여 ARN 역할을 구성할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. 다음 명령을 실행하여 aws-load-balancer-operator 프로젝트를 만듭니다.

    $ oc new-project aws-load-balancer-operator
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 OperatorGroup 객체를 만듭니다.

    $ cat <<EOF | oc apply -f -
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: aws-load-balancer-operator
      namespace: aws-load-balancer-operator
    spec:
      targetNamespaces: []
    EOF
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 서브스크립션 오브젝트를 생성합니다.

    $ cat <<EOF | oc apply -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: aws-load-balancer-operator
      namespace: aws-load-balancer-operator
    spec:
      channel: stable-v1
      name: aws-load-balancer-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
      config:
        env:
        - name: ROLEARN
          value: "<albo_role_arn>" 
    1
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    AWS Load Balancer Operator에 대한 AWS 자격 증명을 프로비저닝하기 위해 CredentialsRequest 에서 사용할 ARN 역할을 지정합니다. <albo_role_arn> 의 예는 arn:aws:iam::<aws_account_number>:role/albo-operator 입니다.
    참고

    AWS 로드 밸런서 운영자는 비밀이 생성될 때까지 기다린 후 사용 가능 상태로 전환합니다.

2.3.4. AWS Load Balancer Controller에 대한 IAM 역할 생성

AWS Load Balancer Controller의 CredentialsRequest 객체는 수동으로 프로비저닝된 IAM 역할로 설정해야 합니다.

다음 옵션을 사용하여 IAM 역할을 만들 수 있습니다.

사용자 환경이 ccoctl 명령을 지원하지 않는 경우 AWS CLI를 사용하세요.

Cloud Credential Operator 유틸리티( ccoctl )를 사용하여 AWS Load Balancer Controller에 대한 AWS IAM 역할을 생성할 수 있습니다. AWS IAM 역할은 서브넷 및 VPC(가상 사설 클라우드)와 상호 작용하는 데 사용됩니다.

사전 요구 사항

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

프로세스

  1. 다음 명령을 실행하여 CredentialsRequest 사용자 정의 리소스(CR)를 다운로드하고 디렉토리에 저장합니다.

    $ curl --create-dirs -o <credentials_requests_dir>/controller.yaml https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/main/hack/controller/controller-credentials-request.yaml
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 ccoctl 유틸리티를 사용하여 AWS IAM 역할을 만듭니다.

    $ ccoctl aws create-iam-roles \
        --name <name> \
        --region=<aws_region> \
        --credentials-requests-dir=<credentials_requests_dir> \
        --identity-provider-arn <oidc_arn>
    Copy to Clipboard Toggle word wrap

    출력 예

    2023/09/12 11:38:57 Role arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-controller created 
    1
    
    2023/09/12 11:38:57 Saved credentials configuration to: /home/user/<credentials_requests_dir>/manifests/aws-load-balancer-operator-aws-load-balancer-controller-credentials.yaml
    2023/09/12 11:38:58 Updated Role policy for Role <name>-aws-load-balancer-operator-aws-load-balancer-controller created
    Copy to Clipboard Toggle word wrap

    1
    AWS Load Balancer Controller에 대해 생성된 AWS IAM 역할의 Amazon 리소스 이름(ARN)을 기록해 두세요(예 : arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-controller ) .
    참고

    AWS IAM 역할 이름의 길이는 12자 이하여야 합니다.

2.3.4.2. AWS CLI를 사용하여 컨트롤러에 대한 AWS IAM 역할 생성

AWS 명령줄 인터페이스를 사용하여 AWS Load Balancer Controller에 대한 AWS IAM 역할을 생성할 수 있습니다. AWS IAM 역할은 서브넷 및 VPC(가상 사설 클라우드)와 상호 작용하는 데 사용됩니다.

사전 요구 사항

  • AWS 명령줄 인터페이스( aws )에 액세스할 수 있어야 합니다.

프로세스

  1. 다음 명령을 실행하여 ID 공급자를 사용하여 신뢰 정책 파일을 생성합니다.

    $ cat <<EOF > albo-controller-trust-policy.json
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Federated": "<oidc_arn>" 
    1
    
                },
                "Action": "sts:AssumeRoleWithWebIdentity",
                "Condition": {
                    "StringEquals": {
                        "<cluster_oidc_endpoint>:sub": "system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager" 
    2
    
                    }
                }
            }
        ]
    }
    EOF
    Copy to Clipboard Toggle word wrap
    1
    OIDC ID 공급자의 Amazon 리소스 이름(ARN)을 지정합니다(예 : arn:aws:iam::777777777777:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f) .
    2
    AWS Load Balancer Controller에 대한 서비스 계정을 지정합니다. <cluster_oidc_endpoint> 의 예는 rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f 입니다.
  2. 다음 명령을 실행하여 생성된 신뢰 정책으로 AWS IAM 역할을 만듭니다.

    $ aws iam create-role --role-name albo-controller --assume-role-policy-document file://albo-controller-trust-policy.json
    Copy to Clipboard Toggle word wrap

    출력 예

    ROLE	arn:aws:iam::<aws_account_number>:role/albo-controller	2023-08-02T12:13:22Z 
    1
    
    ASSUMEROLEPOLICYDOCUMENT	2012-10-17
    STATEMENT	sts:AssumeRoleWithWebIdentity	Allow
    STRINGEQUALS	system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager
    PRINCIPAL	arn:aws:iam:<aws_account_number>:oidc-provider/<cluster_oidc_endpoint>
    Copy to Clipboard Toggle word wrap

    1
    AWS Load Balancer Controller에 대한 AWS IAM 역할의 ARN(예 : arn:aws:iam::777777777777:role/albo-controller ) 을 기록해 보세요.
  3. 다음 명령을 실행하여 AWS Load Balancer Controller에 대한 권한 정책을 다운로드합니다.

    $ curl -o albo-controller-permission-policy.json https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/main/assets/iam-policy.json
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하여 AWS Load Balancer Controller에 대한 권한 정책을 AWS IAM 역할에 연결합니다.

    $ aws iam put-role-policy --role-name albo-controller --policy-name perms-policy-albo-controller --policy-document file://albo-controller-permission-policy.json
    Copy to Clipboard Toggle word wrap
  5. AWSLoadBalancerController 객체를 정의하는 YAML 파일을 만듭니다.

    sample-aws-lb-manual-creds.yaml 파일 예시

    apiVersion: networking.olm.openshift.io/v1
    kind: AWSLoadBalancerController 
    1
    
    metadata:
      name: cluster 
    2
    
    spec:
      credentialsRequestConfig:
        stsIAMRoleARN: <albc_role_arn> 
    3
    Copy to Clipboard Toggle word wrap

    1
    AWSLoadBalancerController 객체를 정의합니다.
    2
    AWS Load Balancer Controller 이름을 정의합니다. 모든 관련 리소스는 이 인스턴스 이름을 접미사로 사용합니다.
    3
    AWS Load Balancer Controller에 대한 ARN 역할을 지정합니다. CredentialsRequest 객체는 이 ARN 역할을 사용하여 AWS 자격 증명을 프로비저닝합니다. <albc_role_arn> 의 예는 arn:aws:iam::777777777777:role/albo-controller 입니다 .
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat