2016-10-04 17 views
1

現在、別のVPCでS3ファイルにアクセスしようとしていますが、正常に処理できます。しかし、ファイルが入ってくると、それらはすべて暗号化されています。AWS S3ファイルクロスアカウント非暗号化

私は、VPC BのS3ファイルを読み込もうとしているマシンをVPC Aに持っています。これらのファイルは、VPC Bのバケットに移動するとサーバー側で暗号化されます。 VPC BからVPC Aに変換する必要があります。ただし、VPC Aの自分のマシンのファイルはjsonとして受信する必要がありますが、代わりに暗号化されているように見えます。

VPC AのマシンにVPC AのS3バケットから読み取ったサーバー側の暗号化ファイルがある場合、この問題は発生しません。ファイルは自動的に解読されたようです。 CLIコマンドを使って

コマンドは(VPC Aで)このようになりますへと

ClientConfiguration config = new ClientConfiguration(); 
AWSSecurityTokenService securityTokenService = new AWSSecurityTokenServiceClient(config); 
AssumeRoleResult assumeRoleResult = securityTokenService.assumeRole(new AssumeRoleRequest() 
    .withRoleArn(roleArn).withDurationSeconds(3600) 
    .withRoleSessionName("s3-cloudtrail-access")); 
Credentials stsCredentials = assumeRoleResult.getCredentials(); 
System.out.println("stsCredentials: " + stsCredentials); 
AWSSessionCredentials tempCredentials = new BasicSessionCredentials(
    stsCredentials.getAccessKeyId(), stsCredentials.getSecretAccessKey(), 
    stsCredentials.getSessionToken() 
); 
AmazonS3 tempClient = new AmazonS3Client(tempCredentials, config); 
tempClient.getObject(
    new GetObjectRequest(horizBucketName, horizFileNameInS3), 
    new File("/home/ec2-user/test-horiz.json.gz") 
); 

任意のアイデア:

aws sts assume-role --role-arn ROLEARN --role-session-name s3-cloudtrail-access 
aws s3 cp s3://LOCATIONOFFILE.json.gz test.json.gz --profile crossaccountrole 

のJava SDKを使えば、この(VPC Aで)ようなものですVPC間でファイルが復号化されることをどのように確認できますか?

ベスト、 ケレン

答えて

1

は冗談で、私はそれを考え出しました。ファイルはjson.gzファイルで、これを解凍する必要がありました。上のコードは誰でもそれを使用したい場合はS3ファイルをクロスアカウント取得するために動作します:)

関連する問題