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


STS(Security Token Service)를 사용하는 클러스터에 AWS(Amazon Web Services) 로드 밸런서 Operator를 설치하려면 CredentialsRequest 오브젝트를 구성하여 클러스터를 준비합니다. 이렇게 하면 Operator가 AWS Load Balancer 컨트롤러를 부트 스트랩하고 필요한 시크릿에 액세스할 수 있습니다.

AWS Load Balancer Operator는 필요한 시크릿을 생성하고 사용할 수 있을 때까지 기다립니다.

STS(Security Token Service) 절차를 시작하기 전에 다음 사전 요구 사항을 충족해야 합니다.

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

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

    $ oc get authentication.config cluster -o=jsonpath="{.spec.serviceAccountIssuer}"

    다음과 같습니다.

    {.spec.serviceAccountIssuer}
    OIDC DNS URL을 지정합니다. An example URL is https://rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f.
  • AWS 관리 콘솔에 로그인한 후 IAM 액세스 관리 ID 공급자로 이동하여 OIDC Amazon Resource Name(ARN) 정보가 있습니다. OIDC ARN 예제는 arn:aws:iam::777777777:oidc-provider/<oidc_dns_url >입니다.

2.3.1. AWS Load Balancer Operator의 IAM 역할

STS를 사용하여 클러스터에 AWS(Amazon Web Services) 로드 밸런서 Operator를 설치하려면 추가 IAM(Identity and Access Management) 역할을 구성합니다.

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

  • Cloud Credential Operator 유틸리티(ccoctl) 및 사전 정의된 CredentialsRequest 오브젝트 사용
  • AWS CLI 및 사전 정의된 AWS 매니페스트 사용

환경에서 ccoctl 명령을 지원하지 않는 경우 AWS CLI를 사용합니다.

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

AWS Load Balancer Operator가 서브넷 및 VPC와 상호 작용할 수 있도록 하려면 Cloud Credential Operator 유틸리티(ccoctl)를 사용하여 AWS IAM 역할을 생성합니다.

사전 요구 사항

  • 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
  2. 다음 명령을 실행하여 AWS IAM 역할을 생성하려면 ccoctl 유틸리티를 사용합니다.

    $ ccoctl aws create-iam-roles \
        --name <name> \
        --region=<aws_region> \
        --credentials-requests-dir=<credentials_requests_dir> \
        --identity-provider-arn <oidc_arn>

    출력 예

    2023/09/12 11:38:57 Role arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-operator created
    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

    다음과 같습니다.

    <name>

    arn:aws:iam::777777:role/<name>-aws-load-operator-aws-load-balancer-operator 와 같이 AWS Load Balancer Operator에 대해 생성된 AWS IAM 역할의 ARMN(Amazon Resource Name)을 지정합니다.

    참고

    AWS IAM 역할 이름의 길이는 12자 미만이어야 합니다.

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

AWS Load Balancer Operator가 서브넷 및 VPC와 상호 작용할 수 있도록 하려면 AWS CLI를 사용하여 AWS IAM 역할을 생성합니다. 이를 통해 Operator는 클러스터 내에서 필요한 네트워크 리소스에 액세스하고 관리할 수 있습니다.

사전 요구 사항

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

프로세스

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

    $ cat <<EOF > albo-operator-trust-policy.json
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Federated": "<oidc_arn>"
                },
                "Action": "sts:AssumeRoleWithWebIdentity",
                "Condition": {
                    "StringEquals": {
                        "<cluster_oidc_endpoint>:sub": "system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager"
                    }
                }
            }
        ]
    }
    EOF

    다음과 같습니다.

    <oidc_arn>
    arn:aws:iam::777777:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t59t4f 와 같은 OIDC ID 공급자의 Amazon Resource Name(ARN)을 지정합니다.
    ServiceAccount
    AWS Load Balancer Controller의 서비스 계정을 지정합니다. < cluster_oidc_endpoint >의 예는 rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1f09b14t59t4f 입니다.
  2. 다음 명령을 실행하여 생성된 신뢰 정책으로 IAM 역할을 생성합니다.

    $ aws iam create-role --role-name albo-operator --assume-role-policy-document file://albo-operator-trust-policy.json

    출력 예

    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>

    다음과 같습니다.

    <aws_account_number>
    AWS Load Balancer Operator에 대해 생성된 AWS IAM 역할의 ARN(예: arn:aws:iam::777777: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
  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
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동