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}"
$ oc get infrastructure cluster -o=jsonpath="{.status.infrastructureName}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터의 OpenID Connect(OIDC) DNS 정보를 알고 있습니다. 이 정보를 표시하려면 CLI에 다음 명령을 입력하세요.
oc get authentication.config cluster -o=jsonpath="{.spec.serviceAccountIssuer}"
$ oc get authentication.config cluster -o=jsonpath="{.spec.serviceAccountIssuer}"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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 역할을 만들 수 있습니다.
-
Cloud Credential Operator 유틸리티(
ccoctl
) 와 미리 정의된CredentialsRequest
객체를 사용합니다. - AWS CLI와 미리 정의된 AWS 매니페스트를 사용합니다.
사용자 환경이 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
바이너리를 추출하고 준비해야 합니다.
프로세스
다음 명령을 실행하여
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
$ 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 Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ccoctl
유틸리티를 사용하여 AWS IAM 역할을 만듭니다.ccoctl aws create-iam-roles \ --name <name> \ --region=<aws_region> \ --credentials-requests-dir=<credentials_requests_dir> \ --identity-provider-arn <oidc_arn>
$ ccoctl aws create-iam-roles \ --name <name> \ --region=<aws_region> \ --credentials-requests-dir=<credentials_requests_dir> \ --identity-provider-arn <oidc_arn>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
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
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 Copied! Toggle word wrap Toggle overflow - 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
)에 액세스할 수 있어야 합니다.
프로세스
다음 명령을 실행하여 ID 공급자를 사용하여 신뢰 정책 파일을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
입니다.
다음 명령을 실행하여 생성된 신뢰 정책으로 IAM 역할을 만듭니다.
aws iam create-role --role-name albo-operator --assume-role-policy-document file://albo-operator-trust-policy.json
$ aws iam create-role --role-name albo-operator --assume-role-policy-document file://albo-operator-trust-policy.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
ROLE arn:aws:iam::<aws_account_number>:role/albo-operator 2023-08-02T12:13:22Z 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>
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 Copied! Toggle word wrap Toggle overflow - 1
- AWS Load Balancer Operator에 대해 생성된 AWS IAM 역할의 ARN을 기록해 두세요(예
: arn:aws:iam::777777777777:role/albo-operator )
.
다음 명령을 실행하여 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
$ 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 Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 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
$ 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 Copied! Toggle word wrap Toggle overflow
2.3.3. AWS Load Balancer Operator에 대한 ARN 역할 구성 링크 복사링크가 클립보드에 복사되었습니다!
AWS Load Balancer Operator에 대한 Amazon 리소스 이름(ARN) 역할을 환경 변수로 구성할 수 있습니다. CLI를 사용하여 ARN 역할을 구성할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
다음 명령을 실행하여
aws-load-balancer-operator
프로젝트를 만듭니다.oc new-project aws-load-balancer-operator
$ oc new-project aws-load-balancer-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
OperatorGroup
객체를 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 서브스크립션 오브젝트를 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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 역할을 만들 수 있습니다.
-
Cloud Credential Operator 유틸리티(
ccoctl
) 와 미리 정의된CredentialsRequest
객체를 사용합니다. - AWS CLI와 미리 정의된 AWS 매니페스트를 사용합니다.
사용자 환경이 ccoctl
명령을 지원하지 않는 경우 AWS CLI를 사용하세요.
2.3.4.1. Cloud Credential Operator 유틸리티를 사용하여 컨트롤러에 대한 AWS IAM 역할 생성 링크 복사링크가 클립보드에 복사되었습니다!
Cloud Credential Operator 유틸리티( ccoctl
)를 사용하여 AWS Load Balancer Controller에 대한 AWS IAM 역할을 생성할 수 있습니다. AWS IAM 역할은 서브넷 및 VPC(가상 사설 클라우드)와 상호 작용하는 데 사용됩니다.
사전 요구 사항
-
ccoctl
바이너리를 추출하고 준비해야 합니다.
프로세스
다음 명령을 실행하여
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
$ 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 Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ccoctl
유틸리티를 사용하여 AWS IAM 역할을 만듭니다.ccoctl aws create-iam-roles \ --name <name> \ --region=<aws_region> \ --credentials-requests-dir=<credentials_requests_dir> \ --identity-provider-arn <oidc_arn>
$ ccoctl aws create-iam-roles \ --name <name> \ --region=<aws_region> \ --credentials-requests-dir=<credentials_requests_dir> \ --identity-provider-arn <oidc_arn>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
2023/09/12 11:38:57 Role arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-controller created 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
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 Copied! Toggle word wrap Toggle overflow - 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
)에 액세스할 수 있어야 합니다.
프로세스
다음 명령을 실행하여 ID 공급자를 사용하여 신뢰 정책 파일을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
입니다.
다음 명령을 실행하여 생성된 신뢰 정책으로 AWS IAM 역할을 만듭니다.
aws iam create-role --role-name albo-controller --assume-role-policy-document file://albo-controller-trust-policy.json
$ aws iam create-role --role-name albo-controller --assume-role-policy-document file://albo-controller-trust-policy.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
ROLE arn:aws:iam::<aws_account_number>:role/albo-controller 2023-08-02T12:13:22Z 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>
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 Copied! Toggle word wrap Toggle overflow - 1
- AWS Load Balancer Controller에 대한 AWS IAM 역할의 ARN(예
: arn:aws:iam::777777777777:role/albo-controller )
을 기록해 보세요.
다음 명령을 실행하여 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
$ curl -o albo-controller-permission-policy.json https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/main/assets/iam-policy.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 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
$ 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 Copied! Toggle word wrap Toggle overflow AWSLoadBalancerController
객체를 정의하는 YAML 파일을 만듭니다.sample-aws-lb-manual-creds.yaml
파일 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow