ブログの画像を別アカウントのS3に移動するためにIAMロールでクロスアカウントアクセス
ずっと先延ばしにしていたのですが、このブログの画像はEC2から直接配信しています。
いい加減にS3からの配信に切り替えようと、画像データだけの引っ越しを予定しております。
諸事情ありまして、S3バケットのアカウントとEC2のアカウントは別のアカウントです。
なので、クロスアカウントでファイルをアップロードします。
いい機会ですので、IAMロールを使用したクロスアカウントアクセスをEC2インスタンスプロファイルで実行しました。
S3のコマンドは、SSMセッションマネージャから実行してます。
ssm-userでも特に問題なく設定できました。
ほとんどこちらのブログ別アカウントのS3バケットを利用する手順を参考にさせていただきました。
ありがとうございます!
目次
アカウントA(S3バケットがある方)のIAMロールの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::bucket_name/*", ] } ] } |
IAMポリシーは特定バケット以下へのPutObjectのみです。
これを「別のAWSアカウント」用のロールをアカウントBを指定して作成してアタッチしました。
結果として、次の画面のような信頼関係になりました。
このアカウントAのIAMロールのARNをアカウントB側で使用します。
アカウントB(EC2がある方)のIAMロールの設定
すでに起動しているEC2にIAMロールを割り当てているので、IAMポリシーをインラインポリシーで追加しました。
ResourceにはアカウントAで作成したIAMロールのARNを指定しました。
1 2 3 4 5 6 7 8 9 |
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111111111111:role/account_a_role" } } |
セッションマネージャでEC2にアクセスします。
1 2 |
$ vim ~/.aws/credentials |
credentialsファイルを以下のように作成しました。
1 2 3 4 |
[s3_profile] role_arn = arn:aws:iam::111111111111:role/account_a_role credential_source=Ec2InstanceMetadata |
試しにreadme.htmlをアップロードしてみました。
1 2 3 |
$ aws s3 cp readme.html s3://bucket_name/ --profile s3_profile upload: readme.html to s3://bucket_name/readme.html |
無事アップロードされました。
これで、画像ファイルのコピーは恙無く行えそうです。
sudo利用時
今回、最初にうっかりsudoで実行して、
「The config profile (s3_profile) could not be found」
となってしまいました。
ssm-userでsudo でroot権限で実行したのでssm-userのcredentialsが見つからないということのようです。
/root/.aws/credentialsにプロファイル情報を作ればsudoでも実行できました。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
RDSスナップショットのS3エクスポート結果確認
RDSのスナップショットをS3へエクスポートが日本語マネジメントコンソールでもで …
-
-
AWS認定試験の自宅受験で壁のポスターを注意されちゃいました
AWS認定オンライン受験をしてみましたに書きましたとおり、自宅受験デビューしまし …
-
-
Amazon EC2 インスタンスメタデータサービス(IMDS) v2のみにしました
今さらながらですが、EC2 インスタンスメタデータサービス(IMDS) v2を確 …
-
-
AWS Firewall Managerを設定して結果を確認
CloudFront対応のポリシーとして作成したかったので、Globalを選択し …
-
-
CloudWatchアラームをAWS CLIでテスト
CloudWatchアラームをテストするコマンドです。 –state …
-
-
Systems Manager デフォルトのホスト管理設定(Default Host Management Configuration)を確認しました
2023/2/17のアップデートAWS Systems Manager をアカウ …
-
-
[事前準備] JAWS-UG 関西IoT専門支部「マクニカkibo + AWS IoTハンズオン」
来る12/19(土)の JAWS-UG 関西IoT専門支部第一回勉強会「マクニカ …
-
-
AWS Storage Gatewayボリュームゲートウェイを作成してWindowsから使用
ボリュームゲートウェイの作成 Storage Gateway作成メニューからボリ …
-
-
EC2インスタンスを必要最小限のパラメータでCLIとSDKから起動する
EC2インスタンスをCLIとSDKから起動するデモで、パラメータを必要最小限にし …
-
-
Cloud9 Python3でpipも3にする
このブログは、2019/10/20に書いた、 Cloud9のAMIがCloud9 …