AWS LightsailインスタンスとS3をエンドポイントでつなぐ
Lightsail にはストレージもあるんですが、EC2のインスタンスとデータ共有もしたいなぁと思い、S3との接続にチャレンジしました。
EC2のときみたいにVPCエンドポイント作成してい、VPCピア接続しちゃえばOKかと考えていたんですが、以下のドキュメントに”S3には不要です”って記載が。。。
Amazon Lightsail の外部の AWS リソースを使用するために Amazon VPC ピア接続をセットアップする
“一部の AWS リソース (Amazon S3、Amazon CloudFront、Amazon DynamoDB など) では、VPC ピア接続を有効にする必要はありません。”
※S3ですが、”パブリックアクセスをすべてブロック”はオンにしています。
目次
VPCエンドポイントを作成します
今回は、名称を”Lightsail2-vpc”としました。
ルートテーブルには、S3へのルーティング情報が追加されています。
さて、コレでアクセスをしてみます。
$ aws s3 ls s3://ku-bucket01
An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
つながったことはつながったようで、次は権限の設定です。
IAMの作成を行います。
EC2だと「アクション→インスタンスの設定→IAMロールの変更」から操作をするのですが、Lightsailにはありません。
そのかわり下記の手順で行います。
IAMユーザーとポリシーを作成し、[アクセスキー ID] と [シークレットアクセスキー] をAWS CLI に設定します。
・IAMコンソールを開きます。
・ユーザー→「ユーザーを追加」
ユーザー名は”Lightsail2-iam-pc-user”としました。
アクセスの種類は、”プログラムによるアクセス”をチェックしてください。
・「アクセス権限」→「既存のポリシーを直接アタッチ」
タグやらいくつかの設定有り。。。
ユーザーの作成をすると、アクセスキーとシークレットアクセスキーが作成されます。
CSVファイルでダウンロードもできますが、一つだけなんでメモメモ(^^)
AWS CLIに設定します。
アクセスキーとシークレットキーをAWS CLIに設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ aws configure AWS Access Key ID [None]: ****************DUM AWS Secret Access Key [None]: ****************************sSc Default region name [None]: ap-northeast-1 Default output format [None]: json $ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************3DUM shared-credentials-file secret_key ****************qsSc shared-credentials-file region ap-northeast-1 config-file ~/.aws/config |
$ aws s3 cp test.txt s3://km-bucket011
upload: ./test.txt to s3://km-bucket011/test.txt
$ aws s3 ls s3://km-bucket011
2020-09-26 08:29:36 5 test.txt
無事つながってくれました!!!
おまけ(^^)
こんな記事もあります。
チュートリアル: Amazon Lightsail の WordPress ウェブサイトを Amazon S3 バケットに接続する
Lightsail ドキュメントは参考になります。