2017-07-11 13 views
0

調査したところでは、通常、S3バケットはAPIキーの元と同じAWSアカウントからダウンロードされているようです。APIキーなしでAmazon S3バケットをインポートするには?

私は新しいAWSアカウントにアクセスできました。このアカウントには、毎日ダウンロードする必要があるS3バケットが含まれています。問題は、APIキーが別のAWSアカウントに関連付けられていることです。新しいS3バケットを既存のAWSアカウントにインポートする方法はありますか?また、必要なS3バケットを既に持っているAWSアカウントで新しいAPIキーを作成して簡単に作成できますか?

私はpythonとboto3を使用しています。ありがとう!

+0

私はあなたがpythonを使って何をしているのか正確な答えはわかりませんが、s3バケットをあなたのawsアカウントにインポートすることはできません。あなたはそれを転送することはできません。あなたができることは、両方を同期することです。他のバケットを所有するアカウントからキーを発行する必要があります。そのため、アクセスして消費することができます。その後、CLIを両方とも同期させます。 'aws s3 sync s3:// mybucket s3:// mybucket2'これをチェックしてください:http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html – Juan

+0

オプション:http:// docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html – jarmod

答えて

0

Amazon S3バケットの所有者は、公開または別のAWSアカウントのユーザーを含む特定のAWSユーザーにアクセスを許可するバケットポリシーを追加できます。この方法は、あなたが例えばアカウントB.

でバケツにアクセスするためにアカウントAからの資格情報を使用することができ、このバケットポリシーは、別のアカウントでのユーザーへのアクセスを許可する:

{ 
    "Id": "S3Access", 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Sid": "DownloadFiles", 
     "Action": [ 
     "s3:GetObject" 
     ], 
     "Effect": "Allow", 
     "Resource": "arn:aws:s3:::my-bucket/*", 
     "Principal": { 
     "AWS": [ 
      "arn:aws:iam::123456789012:user/fred" 
     ] 
     } 
    }, 
    { 
     "Sid": "ListFiles", 
     "Action": [ 
     "s3:ListBucket" 
     ], 
     "Effect": "Allow", 
     "Resource": "arn:aws:s3:::my-bucket", 
     "Principal": { 
     "AWS": [ 
      "arn:aws:iam::123456789012:user/fred" 
     ] 
     } 
    } 
    ] 
} 

ARNを得ることができIAM管理コンソール内のIAMユーザーを確認します。

毎回バケット全体をダウンロードするのではなく、便利なaws s3 syncコマンドを持つAWS Command-Line Interface (CLI)を使用することをお勧めします。これにより、Amazon S3との間でファイルを同期することができ、最後の同期以降に追加または変更されたファイルのみがコピーされます。あなたは定期的に(例えば1時間ごとに)それを実行して、バケツのコンセプトと同様のバケットのローカルコピーを持つことができます。

関連する問題