Der Besitzer des Amazon S3-Buckets kann eine Bucket-Richtlinie hinzufügen, die den Zugriff entweder öffentlich oder auf bestimmte AWS-Benutzer, einschließlich Benutzer aus einem anderen AWS-Konto, gewährt. Auf diese Weise können Sie die Anmeldeinformationen von Konto A verwenden, um einen Eimer in Konto B. für den Zugriff auf
Zum Beispiel dieses Bucket Politik gewährt den Zugriff auf einen Benutzer in einem anderen Konto:
{
"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"
]
}
}
]
}
Die ARN erhalten werden indem Sie den IAM-Benutzer in der IAM-Verwaltungskonsole anzeigen.
Anstatt die gesamte Bucket jedes Mal herunterladen, würde ich empfehlen, die AWS Command-Line Interface (CLI), die eine bequeme aws s3 sync
Befehl hat. Dies kann Dateien von/zu Amazon S3 synchronisieren und nur Dateien kopieren, die seit der letzten Synchronisierung hinzugefügt oder geändert wurden. Sie können es regelmäßig (z. B. jede Stunde) ausführen, um eine lokale Kopie des Buckets zu erhalten, ähnlich wie DropBox.
Ich weiß nicht die genaue Antwort mit dem, was Sie mit Python tun ... aber Sie können nicht einfach ihre S3-Eimer in Ihre AWS-Konto importieren. Sie können es auch nicht übertragen. Was Sie tun könnten, ist beides zu synchronisieren. Sie müssen einen Schlüssel aus dem Konto ausgeben, das diesen anderen Bucket besitzt, damit Sie darauf zugreifen und es konsumieren können. Dann mit der CLI beide synchronisieren. 'aws s3 sync s3: // mybucket s3: // mybucket2' Sieh dir das an: http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html – Juan
Eine Option: http: // docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html. – jarmod