Global outage event
If you’re experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
Amazon EKS IAM ロールを使用してサービスアカウントにアクセスする場合の「InvalidIdentityToken」エラーをトラブルシューティングする方法を教えてください。
Amazon Elastic Kubernetes Service (Amazon EKS) クラスターのサムプリントが変更され、Application Load Balancer の更新が失敗しました。または、Amazon EKS ポッドが失敗して「InvalidIdentityToken」エラーが表示されます。
解決策
Amazon EKS サービスアカウントでは、認証に OpenID コネクト (OIDC) を使用します。Amazon EKS クラスターの AWS Identity and Access Management (IAM) OIDC ID プロバイダー (IdP) を作成する際、生成されるサムプリントではルート証明書が使用されます。Amazon ルート認証局 (CA) の検証期間は約25年間です。
「WebIdentityErr: failed to retrieve credentials\r\ncaused by: InvalidIdentityToken: OpenIDConnect provider's HTTPS certificate doesn't match configured thumbprint\r\n」エラーは以下のシナリオで発生します。
- OIDC プロバイダーで使用されているサムプリントの有効期限が切れている。
- サムプリントが CA と一致していない。
この問題をトラブルシューティングしてサムプリントを取得するには、OpenSSL コマンドラインツールをインストールして設定します。
OIDC IdP の URL を特定する
OIDC IdP の URL を特定するには、次の手順を実行します。
-
Amazon EKS コンソールを開きます。
-
ナビゲーションペインで、[クラスター] を選択します。
-
確認するクラスターを選択します。
-
[設定] タブを開きます。
-
[詳細] セクションで、OICD IdP の URL を書き留めます。
**例: **https://oidc.eks.us-east-1.amazonaws.com/id/1111222233334444555566667777888F/OICD IdP の URL の末尾に /.well-known/openid-configuration を追加して、IdP 設定ドキュメントの URL を作成します。
**例: **https://oidc.eks.us-east-1.amazonaws.com/id/1111222233334444555566667777888F/.well-known/openid-configuration.Web ブラウザでこの URL にアクセスし、出力の jwks\ _uri 値を書き留めます。ブラウザの出力は次のようになります。
{"issuer":"https://oidc.eks.us-east-1.amazonaws.com/id/1111222233334444555566667777888F","jwks_uri":"https://oidc.eks.us-east-1.amazonaws.com/id/1111222233334444555566667777888F/keys","authorization_endpoint":"urn:kubernetes:programmatic_authorization","response_types_supported":["id_token"],"subject_types_supported":["public"],"claims_supported":["sub","iss"],"id_token_signing_alg_values_supported":["RS256"]}
証明書を表示する
OpenSSL コマンドラインツールを使用して次のコマンドを実行すると、使用されているすべての証明書が表示されます。
**注:**oidc.eks.us-east-2.amazonaws.com は、ご使用のドメイン名に置き換えてください。
openssl s_client -connect oidc.eks.us-east-2.amazonaws.com:443 -showcerts
出力は次のようになります。
[root@ip-172-31-1-202 ~]# openssl s_client -connect oidc.eks.us-east-2.amazonaws.com:443 -showcertsCONNECTED(00000003) depth=4 C = US, O = "Starfield Technologies, Inc.", OU = Starfield Class 2 Certification Authority verify return:1 depth=3 C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Services Root Certificate Authority - G2 verify return:1 depth=2 C = US, O = Amazon, CN = Amazon Root CA 1 verify return:1 depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon verify return:1 depth=0 CN = *.execute-api.us-east-2.amazonaws.com verify return:1 --- Certificate chain 0 s:/CN=*.execute-api.us-east-2.amazonaws.com i:/C=US/O=Amazon/OU=Server CA 1B/CN=Amazon -----BEGIN CERTIFICATE----- CERTIFICATE Redacted -----END CERTIFICATE----- 1 s:/C=US/O=Amazon/OU=Server CA 1B/CN=Amazon i:/C=US/O=Amazon/CN=Amazon Root CA 1 -----BEGIN CERTIFICATE----- CERTIFICATE Redacted -----END CERTIFICATE----- 2 s:/C=US/O=Amazon/CN=Amazon Root CA 1 i:/C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./CN=Starfield Services Root Certificate Authority - G2 -----BEGIN CERTIFICATE----- CERTIFICATE Redacted -----END CERTIFICATE----- 3 s:/C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./CN=Starfield Services Root Certificate Authority - G2 i:/C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority -----BEGIN CERTIFICATE----- MIIEdTCCA12gAwIBAgIJAKcOSkw0grd/MA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNV BAYTAlVTMSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTIw MAYDVQQLEylTdGFyZmllbGQgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 eTAeFw0wOTA5MDIwMDAwMDBaFw0zNDA2MjgxNzM5MTZaMIGYMQswCQYDVQQGEwJV UzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UE ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjE7MDkGA1UEAxMyU3RhcmZp ZWxkIFNlcnZpY2VzIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVDDrEKvlO4vW+GZdfjohTsR8/ y8+fIBNtKTrID30892t2OGPZNmCom15cAICyL1l/9of5JUOG52kbUpqQ4XHj2C0N Tm/2yEnZtvMaVq4rtnQU68/7JuMauh2WLmo7WJSJR1b/JaCTcFOD2oR0FMNnngRo Ot+OQFodSk7PQ5E751bWAHDLUu57fa4657wx+UX2wmDPE1kCK4DMNEffud6QZW0C zyyRpqbn3oUYSXxmTqM6bam17jQuug0DuDPfR+uxa40l2ZvOgdFFRjKWcIfeAg5J Q4W2bHO7ZOphQazJ1FTfhy/HIrImzJ9ZVGif/L4qL8RVHHVAYBeFAlU5i38FAgMB AAGjgfAwge0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0O BBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMB8GA1UdIwQYMBaAFL9ft9HO3R+G9FtV rNzXEMIOqYjnME8GCCsGAQUFBwEBBEMwQTAcBggrBgEFBQcwAYYQaHR0cDovL28u c3MyLnVzLzAhBggrBgEFBQcwAoYVaHR0cDovL3guc3MyLnVzL3guY2VyMCYGA1Ud HwQfMB0wG6AZoBeGFWh0dHA6Ly9zLnNzMi51cy9yLmNybDARBgNVHSAECjAIMAYG BFUdIAAwDQYJKoZIhvcNAQELBQADggEBACMd44pXyn3pF3lM8R5V/cxTbj5HD9/G VfKyBDbtgB9TxF00KGu+x1X8Z+rLP3+QsjPNG1gQggL4+C/1E2DUBc7xgQjB3ad1 l08YuW3e95ORCLp+QCztweq7dp4zBncdDQh/U90bZKuCJ/Fp1U1ervShw3WnWEQt 8jxwmKy6abaVd38PMV4s/KCHOkdp8Hlf9BRUpJVeEXgSYCfOn8J3/yNTd126/+pZ 59vPr5KW7ySaNRB6nJHGDn2Z9j8Z3/VyVOEVqQdZe4O/Ui5GjLIAZHYcSNPYeehu VsyuLAOQ1xk4meTKCRlb/weWsKh/NEnfVqn3sF/tM+2MR7cEXAMPLE= -----END CERTIFICATE----- --- Server certificate subject=/CN=*.execute-api.us-east-2.amazonaws.com issuer=/C=US/O=Amazon/OU=Server CA 1B/CN=Amazon
出力に複数の証明書が表示される場合は、出力の最後にある証明書を見つけてください。この証明書は、認証局チェーンのルート CA です。
証明書ファイルを作成する
証明書ファイル (例: certificate.crt) を作成し、最後の証明書の内容をファイルにコピーします。
以下のコマンドを実行します。
openssl x509 -in certificate.crt -text
出力は次のようになります。
[root@ip-172-31-1-202 ~]# openssl x509 -in certificate.crt -textCertificate: Data: Version: 3 (0x2) Serial Number: a7:0e:4a:4c:34:82:b7:7f Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority Validity Not Before: Sep 2 00:00:00 2009 GMT Not After : Jun 28 17:39:16 2034 GMT
[次以降] フィールドと [失効日] フィールドの値から証明書が有効かどうかを確認します。前の出力では、CA の有効期間が約25年です。
期限切れの証明書を置き換える
証明書の有効期限が切れていることが出力に表示された場合は、OIDC IdP で証明書を更新する必要があります。
証明書を更新したら、OpenSSL コマンドラインツールで次のコマンドを実行して最新のサムプリントを取得します。
openssl x509 -in certificate.crt -fingerprint -noout
出力は次のようになります。
SHA1 Fingerprint=9E:99:A4:8A:99:60:B1:49:26:BB:7F:3B:02:E2:2D:A2:B0:AB:72:80
この文字列からコロン (:) を削除して、最終的なサムプリントを取得します。
9E99A48A9960B14926BB7F3B02E22DA2B0AB7280
次のコマンドを実行して最新のサムプリントを取得します。
$ openssl x509 -in certificate.crt -fingerprint -noout | sed s/://g
最新のサムプリントに更新する
現在のサムプリントの有効期限が切れている場合は、IAM コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して最新のサムプリントに置き換えます。
**IAM コンソール **
または、IAM コンソールで以下の手順通りに実行します。
- IAM コンソールを開きます。
- ナビゲーションペインで [ID プロバイダー] を選択します。
- 更新する IdP を選択します。
- [サムプリント] セクションで、[管理] を選択します。
- [サムプリントを追加] を選択し、新しい値を入力します。
- [変更を保存] を選択します。
AWS CLI
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、必ずAWS CLI の最新バージョンを使用してください。
update-open-id-connect-provider-thumbprint AWS CLI コマンドを実行します。
aws iam update-open-id-connect-provider-thumbprint --open-id-connect-provider-arn arn:aws:iam::111122223333:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/5ECB2797CB1324A37FC79E3C46851CED --thumbprint-list 9E99A48A9960B14926BB7F3B02E22DA2B0AB7280
関連情報
- トピック
- Containers
- 言語
- 日本語
