概要
VPC上のEC2とS3を接続する方法。エンドポイントを作成してS3を接続させます。
前提条件
・AWSアカウントを所持していること。
・VPC上にパブリック/プライベート用のEC2の構築済みであること。
構築方法の例
S3アクセス用のIAMの作成
① AWSマネジメントコンソールのサービスを検索するから「IAM」と検索し「IAM」を選択します。
② 左メニュー「ロール」→「ロールの作成」をクリックします。
③ 一般的なユースケース「EC2」を選択し「次のステップ:アクセス制限」をクリックします。
④ ポリシーのフィルタの検索で「S3」と検索し「AmazonS3FullAccess」を選択。「次のステップ:タグ」をクリックします。
⑤ ロールに名前を付けます。キーに「Name」値に「任意の名前」を入力し「次のステップ:確認」をクリックします。
⑥ ロール名の入力をし「ロールの作成」をクリックします。
⑦ ロールが一つ作成されたことを確認します。
⑧ EC2に移動し、左メニュー「インスタンス」からプライベートサブネットに接続されているEC2を選択します。「アクション」→「インスタンスの設定」→「IAMロールの割り当て/置換」をクリックします。
⑨ IAMロールの選択で、作成済みのロールを選択し「適用」をクリックします。
⑩ EC2にIAMロールの割り当てが完了しました。
S3バケットの作成
① AWSマネジメントコンソールのサービスを検索するから「S3」と検索し「S3」を選択します。
② 左メニュー「バケット」→「バケットの作成」をクリックします。
③ 任意のバケット名を入力します。(バケット名はAWS S3全体で一意の名前にする必要があります)
④ 「パブリックアクセスをすべてブロック」にチェックされていることを確認し「バケットを作成」をlクリックします。
⑤ 作成されたバケットが表示されていることを確認します。
エンドポイントの作成
① AWSマネジメントコンソールのサービスを検索するから「VPC」と入力し「VPC」を選択します。
② サービス名で「S3」と入力し「com.amazonaws.ap-northeast-1.s3」を選択します。VPCでは「作成したVPC」を選択します。
③ ルートテーブルの選択で、作成した「プライベートサブネット」にチェックをします。
④ タグの追加でキーは「Name」。値は「任意の名前」を入力します。「エンドポイントの作成」をクリックします。
⑤ エンドポイントの作成が完了表示がされるので「閉じる」をクリックします。
⑥ 左メニュー「ルートテーブル」をクリックし、プライベート用のルートテーブルをクリックし、したメニュー「ルート」をクリックします。送信先に「com.amazonaws.ap-northeast-1)が存在すればOKです。
Amazon Linux上でS3の接続確認
① パブリック用のEC2にターミナル経由で接続します。
ssh -i *********.pem ec2-user@***.***.***.***(パブリックIP)
② パブリック→プライベート用のEC2に接続します。
ssh -i *********.pem ec2-user@***.***.***.***(プライベートIP)
③ rootに切替ます。
sudo su -
④ S3の接続確認コマンドを入力します。
aws s3 ls --region ap-northeast-1
⑤ 接続が正常名場合は以下のように接続しているS3が表示されます。
2020-07-06 01:24:38 sample-s3-20200706