LoginSignup
1
0

AWS の s3 で別アカウントで見えるように

Last updated at Posted at 2024-03-22

概要

AWS のs3 のバケットを別アカウントで見えるようにする手順のメモ

手順

AccountA (以降【A】) から AccountB(以降【B】)に公開するものとする。

  1. 【A】に bucket-a 作成。ファイルを配置。
  2. 【A】の bucket-a のバケットポリシーで下記を追加(【B】の root に対して公開):
    • aa/ 以下に List 限定
    • aa/aa1/ 以下は読み取り専用
    • aa/aa2/ 以下は読み書き可能
     {
       "Version": "2012-10-17",
       "Statement": [
         {
           "Sid": "OpenToBToList",
           "Effect": "Allow",
           "Principal": {
             "AWS": "arn:aws:iam::{BのアカウントID}:root"
           },
           "Action": "s3:ListBucket",
           "Resource": "arn:aws:s3:::backet-a",
           "Condition": {
             "StringLike": {
               "s3:prefix": "aa/*"
             }
           }
         },
         {
           "Sid": "OpenToBToReadOnly",
           "Effect": "Allow",
           "Principal": {
             "AWS": "arn:aws:iam::{BのアカウントID}:root"
           },
           "Action": "s3:GetObject",
           "Resource": [
             "arn:aws:s3:::backet-a/aa/aa1/*"
           ]
         },
         {
           "Sid": "OpenToBToReadWrite",
           "Effect": "Allow",
           "Principal": {
             "AWS": "arn:aws:iam::{BのアカウントID}:root"
           },
           "Action": [
             "s3:GetObject",
             "s3:PutObject",
             "s3:PutObjectAcl",
             "s3:DeleteObject"
           ],
           "Resource": [
             "arn:aws:s3:::backet-a/aa/aa2/*"
           ]
         }
       ]
     }
    
  3. 【B】のユーザに下記のポリシーを適用(【B】の root が個別のユーザに対してアクセスを許可):
     {
       "Version": "2012-10-17",
       "Statement": [
         {
           "Sid": "CrossAccessToA",
           "Effect": "Allow",
           "Action": [
             "s3:ListBucket",
             "s3:GetObject",
             "s3:PutObject",
             "s3:PutObjectAcl",
             "s3:DeleteObject"
           ],
           "Resource": [
             "arn:aws:s3:::backet-a",
             "arn:aws:s3:::backet-a/*"
           ]
         }
       ]
     }
    
  4. 【B】から下記実行:
    aws s3 ls s3://bucket-a/aa/
    

注意

  • aws s3 ls ではバケット名は出て来ない。コンソールのバケット一覧にも出てこない。
  • Admin の権限でアクセスするならユーザのポリシーは関係ない(テストするときには注意)。

おまけ - WinScp から上記に繋ぐ場合の設定

  • 転送プロトコル: Amazon S3
  • ホスト名: s3.amazonaws.com
  • ポート番号: 443
  • 設定 > ディレクトリ > リモート ディレクトリ: /bucket-a/aa/

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0