ハンズオン(簡易版): ACM入門

2.2. ACM証明書のドメイン認証確認 (handson-cli-acm.<事前に用意した独自ドメイン>-certificate)

手順の目的 [why]

ACM証明書"handson-cli-acm.<事前に用意した独自ドメイン>-certificate"を作成します。

設定値の指定

設定値の指定

手順に必要な設定値を変数に格納をします。

1. ACM証明書が存在するリージョン

ACM証明書が存在するリージョンを指定します。

コマンド:

export AWS_DEFAULT_REGION='us-east-1'

2. ACM証明書タグ名

ドメイン名を指定します。

変数の設定:

DIR_TMP="${HOME}/environment/tmp-handson-cli-acm"

変数の設定:

FILE_TMP="${DIR_TMP}/handson-cli-acm-domain.tmp" \
  && echo ${FILE_TMP}

結果(例):

${HOME}/environment/tmp-handson-cli-acm/handson-cli-acm-domain.tmp

コマンド:

source ${FILE_TMP}

変数の設定:

HOST_NAME='handson-cli-acm'

変数の設定:

ACM_DOMAIN_NAME="${HOST_NAME}.${DOMAIN_NAME}" \
  && echo ${ACM_DOMAIN_NAME}

結果(例):

handson-cli-acm.<事前に用意した独自ドメイン>

ACM証明書タグ名を指定します。

変数の設定:

ACM_CERTIFICATE_TAG_NAME="${ACM_DOMAIN_NAME}-certificate" \
  && echo ${ACM_CERTIFICATE_TAG_NAME}

結果(例):

handson-cli-acm.<事前に用意した独自ドメイン>-certificate

設定値の確認

各変数に正しい設定値が格納されていることを確認しながら保存します。

変数の確認:

cat << END

  # 0. AWS_DEFAULT_REGION:"us-east-1"
       AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}"

  # 1. ACM_CERTIFICATE_TAG_NAME:"handson-cli-acm.<事前に用意した独自ドメイン>-certificate"
       ACM_CERTIFICATE_TAG_NAME="${ACM_CERTIFICATE_TAG_NAME}"

END

下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

ACM証明書のARNを取得します。

コマンド:

for i in $( 
  aws acm list-certificates \
    --query "CertificateSummaryList[].CertificateArn" \
    --output text \
); do
  j=$( \
    aws acm list-tags-for-certificate \
      --certificate-arn ${i} \
      --query "Tags[?Key == \`Name\` && Value == \`${ACM_CERTIFICATE_TAG_NAME}\`].Value" \
      --output text \
  )
  if [ "${j}" == "${ACM_CERTIFICATE_TAG_NAME}" ]; then \
    ACM_CERTIFICATE_ARN=$( \
      aws acm list-certificates \
        --query "CertificateSummaryList[?CertificateArn == \`${i}\`].CertificateArn" \
        --output text \
    ) \
      && echo "${ACM_CERTIFICATE_ARN}"
  fi
done

結果(例):

arn:aws:acm:us-east-1:XXXXXXXXXXXX:certificate/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

課題

list-certificatesコマンドがタグ表示できないため、同名の証明書が複数ある場合、全ての証明書をlist-tags-for-certificateコマンドでタグの有無をチェックするしか方法がない。

ACM証明書のDNS認証結果を確認します。

コマンド:

ACM_CERTIFICATE_VALIDATION_STATUS=$( \
  aws acm describe-certificate \
    --certificate-arn ${ACM_CERTIFICATE_ARN} \
    --query 'Certificate.DomainValidationOptions[?ValidationMethod == `DNS`].ValidationStatus' \
    --output text \
) \
  && echo ${ACM_CERTIFICATE_VALIDATION_STATUS}

結果(例):

SUCCESS

完了確認

「ACM証明書タグ名"handson-cli-acm.<事前に用意した独自ドメイン>-certificate"が有効である。」ことを確認します。

コマンド:

ACM_CERTIFICATE_STATUS=$( \
  aws acm describe-certificate \
    --certificate-arn ${ACM_CERTIFICATE_ARN} \
    --query 'Certificate.Status' \
    --output text \
) \
  && echo ${ACM_CERTIFICATE_STATUS}

結果(例):

ISSUED

手順の完了

(参考) マネジメントコンソールの確認

  • ACMダッシュボード( https://console.aws.amazon.com/acm/home#/welcome )にアクセスします。

  • 右上のリージョンメニューから"バージニア北部"を選択します。

  • 左ペインの"証明書を一覧"をクリックします。

証明書一覧(画面)

  • 一覧にドメイン名"handson-cli-acm.<事前に用意した独自ドメイン>"の証明書が表示されていることを確認します。

  • ドメイン名"handson-cli-acm.<事前に用意した独自ドメイン>"の"ステータス"が"発行済み"と表示されていることを確認します。