インターフェイスエンドポイント (AWS PrivateLink) を使用して CloudFormation にアクセスする
AWS PrivateLink を使用して、VPC と CloudFormation の間にプライベート接続を作成できます。インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続を使用せずに、VPC 内にあるかのように CloudFormation にアクセスできます。VPC 内のインスタンスは CloudFormation にアクセスするためにパブリック IP アドレスを必要としません。
このプライベート接続を確立するには、AWS PrivateLink を利用したインターフェイスエンドポイントを作成します。インターフェイスエンドポイントに対して有効にする各サブネットにエンドポイントネットワークインターフェイスを作成します。これらは、CloudFormation 宛てのトラフィックのエントリポイントとして機能するリクエスタ管理型ネットワークインターフェイスです。
CloudFormation は、インターフェイスエンドポイントを介してすべての API アクションの呼び出しをサポートしています。
CloudFormation VPC エンドポイントに関する考慮事項
インターフェイスエンドポイントを設定する前に、まず、「 AWS PrivateLinkガイド」の「インターフェイス VPC エンドポイントを使用した AWS サービスへのアクセス」で説明されている前提条件を満たしていることを確認してください。
CloudFormation のインターフェイスエンドポイントを設定する場合、以下の追加の前提条件と考慮事項が適用されます。
-
VPC 内にカスタムリソースリクエストまたは待機条件に応答する必要があるリソースがある場合は、それらが必要な CloudFormation 固有の Amazon S3 バケットにアクセスできることを確認してください。CloudFormation では、カスタムリソースリクエストまたは待機条件への応答をモニタリングするための S3 バケットが各リージョンにあります。テンプレートに VPC 内のカスタムリソースや待機条件が含まれている場合、その VPC のエンドポイントポリシーにより、次のバケットへの応答の送信がユーザーに許可されている必要があります。
-
カスタムリソースの場合、
cloudformation-custom-resource-response-
バケットへのトラフィックを許可します。カスタムリソースを使用する場合、AWS リージョン名にダッシュは含まれません。例えば、region
uswest2
と指定します。 -
待機条件の場合、
cloudformation-waitcondition-
バケットへのトラフィックを許可します。待機条件を使用する場合、AWS リージョン名にはダッシュが含まれます。例えば、region
us-west-2
と指定します。
エンドポイントポリシーでこれらのバケットへのトラフィックがブロックされている場合、CloudFormation は応答を受け取らず、スタックオペレーションは失敗します。たとえば、待機条件に応答する必要がある
us-west-2
リージョンの VPC にリソースがある場合、リソースはcloudformation-waitcondition-us-west-2
バケットに応答を送信できる必要があります。CloudFormation が現在利用可能な AWS リージョン の一覧については、「Amazon Web Services 全般のリファレンス のAWS CloudFormation エンドポイントとクォータ」のページを参照してください。
-
-
現在、VPC エンドポイントはクロスリージョンの要求をサポートしていません。必ず CloudFormation への API 呼び出しを発行する予定のリージョンでエンドポイントを作成してください。
-
VPC エンドポイントは、Route 53 を介して Amazon が提供する DNS のみをサポートします。独自の DNS を使用したい場合は、条件付き DNS 転送を使用できます。詳細については、「Amazon VPC ユーザーガイド」の「Amazon VPC の DHCP オプションセット」を参照してください。
-
VPCエンドポイントにアタッチされたセキュリティグループでは、VPCのプライベートサブネットから、ポート 443 で着信接続を許可する必要があります。
CloudFormation 用のインターフェイス VPC エンドポイントの作成
CloudFormation の VPC エンドポイントは、Amazon VPC コンソールまたは AWS Command Line Interface (AWS CLI) を使用して作成できます。詳細については、『AWS PrivateLink ガイド』の「Create a VPC endpoint (VPC エンドポイントを作成)を参照してください。
CloudFormation 用の インターフェイスエンドポイントは、以下のサービス名を使用して作成します。
-
com.amazonaws.
region
.cloudformation
インターフェースエンドポイントのプライベートDNSを有効にすると、デフォルトのリージョン DNS 名を使用して CloudFormation への API リクエストを行うことができます。例えば、cloudformation.us-east-1.amazonaws.com
と指定します。
CloudFormation 用の VPC エンドポイントポリシーの作成
エンドポイントポリシーは、インターフェイスエンドポイントにアタッチできる IAM リソースです。デフォルトのエンドポイントポリシーでは、インターフェイスエンドポイントを介した CloudFormation へのフルアクセスが許可されています。VPC から CloudFormation に許可されるアクセスを制御するには、カスタム・エンドポイント・ポリシーをインターフェースのエンドポイントにアタッチします。
エンドポイントポリシーは、以下の情報を指定します。
-
アクションを実行できるプリンシパル (AWS アカウント、IAM ユーザー、IAM ロール)。
-
実行可能なアクション。
-
このアクションを実行できるリソース。
詳細については、『AWS PrivateLink ガイド』の「Control access to VPC endpoints using endpoint policies (エンドポイントポリシーを使用して VPC エンドポイントへのアクセスをコントロールする)」を参照してください。
例: CloudFormation アクション用の VPC エンドポイントポリシー
CloudFormation のエンドポイントポリシーの例を次に示します。エンドポイントにアタッチされると、このポリシーは、すべてのリソースですべてのプリンシパルに、リストされている CloudFormation アクションへのアクセス権を付与します。次の例では、VPC エンドポイントを経由してスタックを作成するアクセス許可をすべてのユーザーに拒否し、CloudFormation サービスの他のすべてのアクションへのフルアクセスを許可します。
{ "Statement": [ { "Action": "cloudformation:*", "Effect": "Allow", "Principal": "*", "Resource": "*" }, { "Action": "cloudformation:CreateStack", "Effect": "Deny", "Principal": "*", "Resource": "*" } ] }