目次
01. EC2からS3へアクセスする(EC2にロールをセット)
02. 手順
概要と準備
- privateにあるEC2からVPCエンドポイント(Gatewayタイプ)を使用してS3にアクセスします。
privateのEC2にはpublicのEC2からログインします。 - IAMロールにS3操作の権限をつけてEC2に割り当てます。
- VPCエンドポイントのIDの最初は、vpce-になります。(vpc + endpointのe)
- 以下の場合は、VPCエンドポイントは不要です。
public subnetにあるEC2からInternet Gatewayでつながっている場合のS3へのアクセス
private subnetにあるEC2からNAT gateway→Internet Gatewayでつながっている場合のS3へのアクセス - 以下が行われていることが前提です。
AWS Tera TermのSSHでEC2に接続する
S3操作の権限を持つロールを作成する
EC2が使用できるロールを作成し、そのロールにs3にアクセスできるポリシーを追加します |
1.検索入力欄で「IAM」と入力し、表示された「IAM」をクリックします。
2.左の画面で「ロール」をクリックし、「ロールを作成」ボタンをクリックします。
3.「AWSのサービス」を選択します。
4.「一般的なユースケース」で「EC2」を選択し次へをクリックします。
5.「許可ポリシー」の検索欄でS3と入力し「AmazonS3FullAccess」にチェックを入れ次へをクリックします。
6.ロール名を入力します。test-role-2022
7.「ロールを作成」をクリックするとロールが作成されます。
VPCエンドポイントを作成する
1.検索入力欄で「VPC」と入力し、表示された「VPC」をクリックします。
2.左の画面で「エンドポイント」をクリックし、「エンドポイントを作成」をクリックします。
3.エンドポイントの名前タグを入力します。サービスカテゴリは、AWSのサービスを選択します。
4.検索欄でS3と入力し、Gatewayタイプのサービス名を選択します。
5.VPCは、作成したVPCを選択します。
6.ルートテーブルは、privateのsubnetに関連付けして作成したルートテーブルを選択します。
7.ポリシーは、フルアクセスにしました。
「エンドポイントの作成」をクリックするとエンドポイントが作成されます。
備考
VPCエンドポイントのIDの最初は、vpce-になります。(vpc + endpointのe)
VPCエンドポイントを作成すると、ルートテーブルにはターゲットは自動で追加されます。
エンドポイント追加前 privateのルートテーブル(test11-route-private)
エンドポイント追加後 privateのルートテーブル(test11-route-private)
EC2にロールをセットする
1.検索入力欄で「EC2」と入力し、表示された「EC2」をクリックします。
2.インスタンスの一覧を表示します。
3.ロールを割り当てるEC2にチェックを入れ「アクション」>「セキュリティ」>「IAMロールを変更」をクリックします。
4.IAMロールの選択で作成したロールを選択し「IAMロールの更新」をクリックします。
5.インスタンスの一覧で対象のEC2を選択し詳細タブのIAMロールには、設定したロールが表示されます。
ロールの反映は即時にされます。EC2の再起動は不要です。
EC2のコンソールからIAMロールを確認する
1.Tera TermのSSHでEC2に接続します。
AWS Tera TermのSSHでEC2に接続する
2.aws configure listを入力し、Typeにiam-roleが設定されていることを確認します。
[ec2-user@ip-10-0-10-4 ~]$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key **************** iam-role
secret_key **************** iam-role
region ap-northeast-1 imds
[ec2-user@ip-10-0-10-4 ~]$
EC2にロールがセットされていない場合以下のメッセージが表示されます。
Unable to locate credentials. You can configure credentials by running "aws configure".
EC2のコンソールからS3のファイルを参照/取得する
aws s3 lsでバケットが表示されます。
[ec2-user@ip-10-0-10-4 ~]$ aws s3 ls
2022-07-12 15:35:34 test-s3-data-2022
[ec2-user@ip-10-0-10-4 ~]$ aws s3 ls s3://test-s3-data-2022
2022-07-13 16:36:42 774 aws-test1.png
2022-07-21 15:10:39 16 test-data1.txt
[ec2-user@ip-10-0-10-4 ~]$
3行目は、バケット内のファイルを表示しています。
関連の記事