14.3. AWS 계정 준비


cert-manager 가 Let's Encrypt (또는 다른 ACME 인증서 발급자)에서 인증서를 요청하는 경우, Let's Encrypt servers validate that you control the domain name in that certificate using challenges. 이 튜토리얼에서는 해당 도메인 이름에 TXT 레코드에 특정 값을 배치하여 도메인 이름의 DNS를 제어한다는 것을 증명하는 DNS -01 챌린지 를 사용하고 있습니다. 이 모든 작업은 cert-manager에 의해 자동으로 수행됩니다. cert-manager 권한이 도메인의 Amazon Route 53 공용 호스팅 영역을 수정할 수 있도록 하려면 특정 정책 권한 및 pod 액세스를 허용하는 신뢰 관계를 사용하여 IAM(Identity Access Management) 역할을 생성해야 합니다.

이 튜토리얼에서 사용되는 공개 호스팅 영역은 ROSA 클러스터와 동일한 AWS 계정에 있습니다. 공개 호스팅 영역이 다른 계정에 있는 경우 Cross Account Access 에 대한 몇 가지 추가 단계가 필요합니다.

  1. Amazon Route 53 공용 호스팅 영역 ID를 검색합니다.

    참고

    이 명령은 이전에 DOMAIN 환경 변수로 지정한 사용자 정의 도메인과 일치하는 공개 호스팅 영역을 찾습니다. 내보내기 ZONE_ID=<zone_ID>를 실행하여 Amazon Route 53 공개 호스팅 영역을 수동으로 지정하여 < zone_ID >를 특정 Amazon Route 53 공개 호스팅 영역 ID로 교체할 수 있습니다.

    $ export ZONE_ID=$(aws route53 list-hosted-zones-by-name --output json \
      --dns-name "${DOMAIN}." --query 'HostedZones[0]'.Id --out text | sed 's/\/hostedzone\///')
  2. 지정된 공개 호스팅 영역 업데이트하는 기능을 제공하는 cert-manager Operator에 대한 AWS IAM 정책 문서를 생성합니다.

    $ cat <<EOF > "${SCRATCH}/cert-manager-policy.json"
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "route53:GetChange",
          "Resource": "arn:aws:route53:::change/*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "route53:ChangeResourceRecordSets",
            "route53:ListResourceRecordSets"
          ],
          "Resource": "arn:aws:route53:::hostedzone/${ZONE_ID}"
        },
        {
          "Effect": "Allow",
          "Action": "route53:ListHostedZonesByName",
          "Resource": "*"
        }
      ]
    }
    EOF
  3. 이전 단계에서 생성한 파일을 사용하여 IAM 정책을 생성합니다.

    $ POLICY_ARN=$(aws iam create-policy --policy-name "${CLUSTER}-cert-manager-policy" \
      --policy-document file://${SCRATCH}/cert-manager-policy.json \
      --query 'Policy.Arn' --output text)
  4. cert-manager Operator에 대한 AWS IAM 신뢰 정책을 생성합니다.

    $ cat <<EOF > "${SCRATCH}/trust-policy.json"
    {
     "Version": "2012-10-17",
     "Statement": [
     {
     "Effect": "Allow",
     "Condition": {
       "StringEquals" : {
         "${OIDC_ENDPOINT}:sub": "system:serviceaccount:cert-manager:cert-manager"
       }
     },
     "Principal": {
       "Federated": "arn:aws:iam::$AWS_ACCOUNT_ID:oidc-provider/${OIDC_ENDPOINT}"
     },
     "Action": "sts:AssumeRoleWithWebIdentity"
     }
     ]
    }
    EOF
  5. 이전 단계에서 생성한 신뢰 정책을 사용하여 cert-manager Operator에 대한 IAM 역할을 생성합니다.

    $ ROLE_ARN=$(aws iam create-role --role-name "${CLUSTER}-cert-manager-operator" \
       --assume-role-policy-document "file://${SCRATCH}/trust-policy.json" \
       --query Role.Arn --output text)
  6. 권한 정책을 역할에 연결합니다.

    $ aws iam attach-role-policy --role-name "${CLUSTER}-cert-manager-operator" \
      --policy-arn ${POLICY_ARN}
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.