2017-07-11 4 views
0

Nach meiner Recherche scheint es, dass S3-Buckets normalerweise von demselben AWS-Konto heruntergeladen werden, aus dem auch der API-Key stammt.Importieren von Amazon S3-Bucket ohne API-Schlüssel?

Ich habe Zugang zu einem neuen AWS-Konto erhalten, und dieses Konto enthält einen S3-Bucket, den ich täglich herunterladen muss. Das Problem ist, dass ich meinen API-Schlüssel mit einem anderen AWS-Konto verknüpft habe. Gibt es eine Möglichkeit, den neuen S3-Bucket in mein bestehendes AWS-Konto zu importieren, oder wäre es einfacher, einen neuen API-Schlüssel für das AWS-Konto zu erstellen, für das bereits der S3-Bucket benötigt wird?

Ich benutze Python und Boto3. Vielen Dank!

+0

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

+0

Eine Option: http: // docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html. – jarmod

Antwort

0

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.

Verwandte Themen