14.3. AWS アカウントの準備


cert-manager が Let's Encrypt (または別の ACME 証明書発行者) に証明書を要求すると、Let's Encrypt のサーバーが チャレンジ を使用して、その証明書内のドメイン名がお客様によって制御されていることを検証します。このチュートリアルでは、ドメイン名の TXT レコードに特定の値を入力することで、ドメイン名の DNS を制御していることを証明する DNS-01 チャレンジ を使用します。これはすべて cert-manager によって自動的に行われます。cert-manager 権限によってドメインの Amazon Route 53 パブリックホストゾーンを変更できるように、Pod へのアクセスを許可する信頼関係と特定のポリシー権限を持つ Identity Access Management (IAM) ロールを作成する必要があります。

このチュートリアルで使用するパブリックホストゾーンは、ROSA クラスターと同じ AWS アカウント内にあります。パブリックホストゾーンが別のアカウントにある場合は、クロスアカウントアクセス のためにいくつかの追加手順が必要です。

  1. Amazon Route 53 のパブリックホストゾーン ID を取得します。

    注記

    このコマンドは、DOMAIN 環境変数として以前指定したカスタムドメインに一致するパブリックホストゾーンを検索します。Amazon Route 53 パブリックホストゾーンを手動で指定するには、export ZONE_ID=<zone_ID> を実行し、<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 では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.