Amazon CloudFront ディストリビューションが属する AWS アカウントを見つけたいです。これを行うにはどうすればよいですか?
簡単な説明
ディストリビューションが属する AWS アカウントに関する情報を検索するには、ListConflictingAliases コマンドを使用して AWS アカウントに関する情報を取得します。
まず、新しい CloudFront ディストリビューションを作成し、SSL 証明書に関連付けます。この SSL 証明書は、探そうとしている AWS アカウントの CloudFront ディストリビューションに関連付けられたドメインをカバーしている必要があります。
次に、新しいディストリビューションの ID と、確認したいディストリビューションに関連付けられている代替ドメイン名を使用して、ListConflictingAliases コマンドを実行します。
注: この方法を使用するには、ディストリビューションに代替ドメイン名が関連付けられている必要があります。見つけようとしている CloudFront ディストリビューションに代替ドメイン名が関連付けられていない場合は、AWS Support にお問い合わせください。
解決方法
CloudFront ディストリビューションを作成する
新しい CloudFront ディストリビューションを作成し、次のことを必ず実施してください。
- 探そうとしている AWS アカウントの CloudFront ディストリビューションに関連付けられたドメインをカバーする SSL 証明書を関連付けます。
- [代替ドメイン名] にドメイン名を指定しないでください。 このフィールドに値を入力すると、「CNAME はすでに存在します」というエラーが発生します。
新しいディストリビューションを作成しない場合は、既存の CloudFront ディストリビューションをカスタム SSL 証明書で更新できます。
ListConflictingAliases コマンドを実行する
注意: ListConflictingAliases コマンドには、GetDistribution および ListConflictingAliases の許可が必要です。所有権を確認するには、YourDistributionID への読み取りアクセス権が必要です。また、競合する CNAME を保護する証明書を関連付ける必要があります。
1. 作成したディストリビューションの AWS Identity and Access Management (IAM) ポリシーで、API リクエストを行う IAM ユーザーまたはロールに以下のリソースレベルのアクセス許可を追加します。
[DISTRIBUTION-ID] に、作成した新しいディストリビューションの ID を入力します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CloudFrontCnameSwapCrossAcc",
"Effect": "Allow",
"Action": [
"cloudfront:GetDistribution",
"cloudfront:ListConflictingAliases"
],
"Resource": [
"arn:aws:cloudfront::123456789:distribution/DISTRIBUTION-ID"
]
}
]
}
2. 新しいディストリビューションに有効な証明書があることを確認します。
3. ListConflictingAliases コマンドを実行します。
$ aws cloudfront list-conflicting-aliases --distribution-id YourDistributiontID --alias YourCNAME
YourDistributionId には、AWS アカウントに作成された新しいディストリビューションの ID を入力します。
YourCNAME には、見つけようとしている CloudFront ディストリビューションに関連付けられているエイリアス (代替ドメイン名) を入力します。
4. 出力には、CloudFront ディストリビューションのリストと、 ListConflictingAliases コマンドで入力したエイリアスと競合する関連付けられたアカウント ID が表示されます。
—エイリアスパラメーターのドメイン名は、検索しようとしている CloudFront ディストリビューションに関連付けられています。ディストリビューション ID に関連付けられた AWS アカウント ID も出力にリストアップされます。
例:
$ aws cloudfront list-conflicting-aliases --distribution-id EABCDSXK9UXYZ --alias www.example.com
{
"ConflictingAliasesList": {
"MaxItems": 100,
"Quantity": 1,
"Items": [
{
"Alias": "www.example.com",
"DistributionId": "*******NOOCXYZ",
"AccountId": "******091234"
}
]
}
}
注: API ゲートウェイ または AWS Amplify マネージドホスティングのエッジ最適化 API エンドポイントを介して作成された CloudFront ディストリビューションは、AWS マネージドアカウントによって管理されます。この場合、出力の AWS アカウント ID は AWS マネージドアカウントに関連しています。API ゲートウェイのエッジ最適化 API エンドポイント用に作成された CloudFront ディストリビューションは、リージョン固有の API ゲートウェイアカウント ID の 1 つによって識別できます。リージョン固有の API ゲートウェイアカウント ID の完全なリストについては、「CloudTrail でカスタムドメイン名の作成をログに記録する」を参照してください。