AWSのEC2からS3のファイルへIAMユーザーのキーでアクセスするサンプルです。
目次
サンプル | 概要と準備 |
IAMユーザーを作成する | |
VPCエンドポイントを作成する | |
EC2のコンソールでキーを割り当てる(aws configure) | |
EC2のコンソールからS3のファイルを参照/取得する(aws s3 ls/cp) | |
EC2のコンソールでキーを削除する |
概要と準備
- IAMユーザーのキーをEC2に割り当てS3へアクセスします。
→注意:アクセスキーとシークレットキーの使用はセキュリティ的に非推奨です。
ここでは、動作確認のため行っています。 - EC2のユーザ名とIAMユーザ名は異なっていてもS3にアクセスできます。
- EC2の作成とS3へのファイルアップロード済みです。
- AWS EC2のAWS CLIをバージョンアップしています。
https://aws.amazon.com/jp/s3/
IAMユーザーを作成する
1.検索入力欄で「IAM」と入力し、表示された「IAM」をクリックします。
2.左の画面で「ユーザー」をクリックし、「ユーザーを追加」ボタンをクリックします。
3.ユーザー名を入力します。
4.AWSのアクセスの種類は、「アクセスキー・プログラムによるアクセス」にチェックを入れます。
「次のステップ:アクセス権限」ボタンをクリックします。
5.「既存のポリシーを直接アタッチ」をクリックし、入力欄にs3を入力して検索し「AmazonS3FullAccess」にチェックを入れ
「次のステップ:タグ」→「次のステップ:確認」→「ユーザーの作成」ボタンをクリックしてユーザーを作成します。
6..csvのダウンロードでファイルをダウンロードして保存しておきます。
ファイルの中にアクセスキーとシークレットキーが記載されています。
VPCエンドポイントを作成する
VPCエンドポイントは、VPC内からS3等のサービスを送信先とするルートテーブル内のルートのターゲットになります。
1.検索入力欄で「VPC」と入力し、表示された「VPC」をクリックします。
2.左の画面で「エンドポイント」をクリックし、「エンドポイントを作成」をクリックします。
3.エンドポイントの名前タグを入力します。サービスカテゴリは、AWSのサービスを選択します。
4.検索欄でS3と入力し、Gatewayタイプのサービス名を選択します。
5.VPCは、作成したVPCを選択しました。
6.ルートテーブルも、作成したルートテーブルを選択しました。
「エンドポイントの作成」をクリックするとエンドポイントが作成されます。
VPCエンドポイントのIDの最初は、vpce-になります。(vpc + endpointのe)
EC2のコンソールでキーを割り当てる(aws configure)
1.Tera TermのSSHでEC2に接続します。
Tera TermのSSHでEC2に接続する
2.コンソールでaws configureで設定を行います。
aws configure listで設定を確認できます。 |
[ec2-user@ip-10-0-10-4 ~]$ aws configure
AWS Access Key ID [None]: アクセスキー
AWS Secret Access Key [None]: シークレットキー
Default region name [None]: ap-northeast-1
Default output format [None]:
3行目は、デフォルトにするリージョンを入力します。
4行目は、何も入力せずエンターキーを押します。
EC2のコンソールからS3のファイルを参照/取得する(aws s3 ls/cp)
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行目は、バケット内のファイルを表示しています。
デフォルトのリージョンではない場合は、コマンドの後に--region リージョン名を指定します。
aws s3 ls s3://test-s3-data-2022 --region ap-northeast-1
S3のファイルをEC2へ転送する
aws s3 cpでS3のバケット内のファイルをEC2に転送しています。
[ec2-user@ip-10-0-10-4 ~]$ aws s3 cp s3://test-s3-data-2022/test-data1.txt /home/ec2-user
download: s3://test-s3-data-2022/test-data1.txt to ./test-data1.txt
[ec2-user@ip-10-0-10-4 ~]$ more test-data1.txt
hello world test
EC2のコンソールでキーを削除する
aws configureコマンドで設定した値は、以下にファイルで配置されます。
[ec2-user@ip-10-0-10-4 ~]$ ls -l ~/.aws
total 8
-rw------- 1 ec2-user ec2-user 82 Apr 8 16:03 config
-rw------- 1 ec2-user ec2-user 238 Apr 8 16:03 credentials
[ec2-user@ip-10-0-10-4 ~]$
削除
rm -r ~/.aws
1行目は、キーの内容が表示されます。
3行目は、フォルダごと削除され、アクセスの権限がなくなります。
configファイル
regionが設定されています。
[ec2-user@ip-10-0-10-4 ~]$ cat ~/.aws/config
[profile test-ec2-user]
region = ap-northeast-1
[default]
region = ap-northeast-1
[ec2-user@ip-10-0-10-4 ~]$
aws configure --profile (プロファイル名)で設定するとdefault以外のプロファイル名で保存できます。
credentialsファイル
アクセスキーとシークレットキーが保存されています。
[ec2-user@ip-10-0-10-4 ~]$ cat ~/.aws/credentials
[test-ec2-user]
aws_access_key_id = xxx
aws_secret_access_key = xxxx
[default]
aws_access_key_id = xxx
aws_secret_access_key = xxxx
[ec2-user@ip-10-0-10-4 ~]$
aws configure --profile (プロファイル名)で設定するとdefault以外のプロファイル名で保存できます。
関連の記事