目次
はじめに
・背景
オンプレのWindows ServerからAWSのEC2にec2-userにてファイルを送りたかった。
しかし、userAにて送信対象のフォルダが作成されていたため、ec2-userでは権限で拒否されてしまいハマったので解決方法をシェアします。
・目的
ec2-userを使用してSCPコマンドでファイルを転送しようとして起きた権限エラーが発生し、どう解決したか紹介します。
・対象読者
同じようにファイル転送で苦戦してる人やAWS初心者。
・補足
ec2-user以外のuserAでもファイル送信は可能です。
しかし、userAにてファイルを転送しようとするとuserA専用の鍵の発行をしなければならないので、今回はec2-userにてファイル送信をする方針としました。
2. 準備
◇必要な環境・ツール
・Windows Server 2022 Datacenter
・AWSアカウント
・EC2インスタンス(Linux)
・SCPコマンド
◇前提条件
・AWS CLIがインストール
・S3バケットの用意
・EC2インスタンスの作成と設定
・S3バケットの作成
・オンプレサーバからEC2へのscpの許可
3. 基本概念
◇キーワードの説明
・SCP(Secure Copy Protocol):安全にファイルを転送するためのプロトコル。
・EC2(Elastic Compute Cloud):AWSの仮想サーバー。
・S3(Simple Storage Service):AWSのストレージサービス。
◇基本的な流れや構造
・EC2でS3をマウントし、オンプレのWindows ServerからEC2にファイルを送る。
4. 実装・手順
◇イメージ図
◇実装・手順
・ステップ1: EC2インスタンスの設定
EC2インスタンスを作成し、SSH接続できるように設定します。
詳細な設定手順はこちらを参照してください。
・ステップ2: S3をEC2にuserAユーザでマウント
S3 バケットをEC2 インスタンスにマウントする
# userAでログインして以下のコマンドを実行
mount-s3 [バケット名] [任意のDir]/ --allow-delete
・ステップ3: Windows ServerからSCPコマンドでファイルを転送しようとすると権限エラー発生
scp -i /path/to/key.pem file.txt ec2-user@<EC2_IP>:/mnt/s3bucket
# -> 権限エラー発生
・ステップ4: ec2-userで同じS3バケットをマウント
# ec2-userでログインして以下のコマンドを実行
mount-s3 [userAでマウントしたやつと同じバケット名] [任意のDir]/ --allow-delete
・ステップ5: SCPコマンドでファイルを転送
scp -i /path/to/key.pem file.txt ec2-user@<EC2_IP>:/home/ec2-user/s3bucket
ステップ6: 同じバケットを別のユーザでマウントできることを知り、権限エラーを解消
まとめ
◇この記事の要点
・Windows ServerからEC2へのファイル転送の方法と権限問題の解決
・S3をマウントしてのファイル管理
◇学んだこと
・同じS3のバケットをEC2の別ユーザへ紐づけられること