別アカウントのVPCからAWS PrivateLinkを使う
2020/08/11
やったことないのでやってみるシリーズです。
VPC エンドポイントサービス (AWS PrivateLink)を参考にしました。
目次
NLB + EC2 の構成
右側サービス側のNLB+EC2の構築手順は割愛します。
NLBは内部向けにしました。
EC2は以下のユーザーデータで、画面上にインスタンスの情報が表示されるWebサーバーにしています。
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash yum -y update yum -y install httpd systemctl enable httpd.service systemctl start httpd.service AZ=`curl --silent http://169.254.169.254/latest/meta-data/placement/availability-zone` INSTANCE_ID=`curl --silent http://169.254.169.254/latest/meta-data/instance-id` IP_ADDRESS=`curl --silent http://169.254.169.254/latest/meta-data/public-ipv4` echo $AZ\<br\> >> /var/www/html/index.html echo $INSTANCE_ID\<br\> >> /var/www/html/index.html echo $IP_ADDRESS >> /var/www/html/index.html |
エンドポイントサービスの作成
VPCの[エンドポイントサービスの作成]から作成しました。
NLBを選択して、[エンドポイントの承諾が必要]を有効にしました。
ホワイトリストにプリンシパルの設定
作成したエンドポイントサービスを選択して、[ホワイトリストにプリンシパルを追加する]アクションから、以下の2つのIAMロールを追加しました。
123456789012 はもう一方のアカウントIDです。
arn:aws:iam::123456789012:role/OrganizationAccountAccessRole
arn:aws:iam::123456789012:role/BlogRole
OrganizationAccountAccessRole: クロスアカウントアクセス用、VPCエンドポイントの設定をする。
BlogRole: コンシューマーとなるEC2に引き受けさせる。
VPCエンドポイントの作成に必要なので、サービス名をメモっておきました。
VPCエンドポイントの作成
123456789012のアカウントで、VPCエンドポイントを作成しました。
[サービスを名前で検索]を選択して、メモっておいたサービス名を入力して[検証]ボタンを押下しました。
操作しているIAMユーザーがサービスのホワイトリストに設定されていれば、サービスが見つかります。
クロスアカウントアクセスしているので、この場合はOrganizationAccountAccessRoleです。
サポートされるAZはNLBが設定されているAZのみになりました。
作成すると、[承諾の保留中]となりました。
エンドポイントサービスで承諾する
エンドポイントサービス側のアカウントに戻り、[エンドポイント接続]タブで承諾をしました。
コンシューマーEC2から接続してみる。
EC2インスタンスを起動して、curlコマンドで、VPCエンドポイントのDNSにリクエストしてみました。
1 2 3 4 5 |
$ curl http://vpce-xxxxxxxxxxxxx.vpce-svc-xxxxxxxxxxx.us-east-1.vpce.amazonaws.com us-east-1b<br> i-xxxxxxxxxx<br> 3.237.94.211 |
エンドポイントサービス側のEC2インスタンスの情報が見れました。
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。
【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。
【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター3年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Route 53で不要なドメインを削除
勢いで作ったけど結局使うのをやめたドメインがあります。 要らないので削除しました …
-
-
EFSのマウントターゲットがデフォルトで作成されるようになってました
ひさしぶりにAmazon EFSファイルシステムを作成しました。 作成手順がすご …
-
-
CUSTOMINEを使ってkintoneからAWS Lambdaを実行する(Cognito認証付き)
先日の記事「kintoneのカスタマイズ開発を超速にするCUSTOMINE」で書 …
-
-
TwilioからのリクエストをAPI Gateway+LambdaでTwimlを返して処理する
Twilioで着信した時のリクエスト先としてTwimlをWebサーバやS3で用意 …
-
-
Cloud9のデフォルト設定での権限確認(AWS managed temporary credentials)
Cloud9の環境を作成した際のデフォルトアクセス権限は、環境を作成したIAMユ …
-
-
Amazon EC2 Auto Scalingのライフサイクルフック
EC2 Auto Scalingにライフサイクルフックという機能があります。 ス …
-
-
EC2 VyOSで/etc/resolv.confを設定しました
EC2でVyOSを起動してSSHで接続して確認していたところ、どうもVyOSから …
-
-
Systems Manager セッションマネージャアクセスのCloud9(SSHなし)
作成画面 いつからできるようになっていたのか気づいてなかったのですが、Cloud …
-
-
[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました
Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …
-
-
AWS Certificate Manager(ACM)メール検証をDNS検証の証明書に差し替えました
ブログの証明書 このブログの証明書の有効期限があと1週間です。 証明書はAWS …