2016-10-04 4 views
1

J'essaie actuellement d'obtenir l'accès aux fichiers S3 dans un autre VPC, et je suis en mesure de réussir. Mais quand les fichiers arrivent, ils sont tous cryptés.Fichiers AWS S3 Cross Compte pas déchiffrer

J'ai des machines dans VPC A qui essayent de lire des fichiers S3 dans VPC B. Les fichiers sont chiffrés côté serveur quand ils vont dans le compartiment dans VPC B. J'assume avec succès rôle et ai des fichiers provenant du seau S3 VPC B à VPC A. Cependant, les fichiers dans mes machines dans VPC A devraient être en tant que json, mais semblent être cryptés.

Lorsque j'ai des machines dans VPC Un côté lecture des fichiers cryptés du serveur à partir d'un compartiment S3 dans VPC A, je n'ai pas ce problème. Les fichiers semblent être décryptés automatiquement.

La commande via la commande CLI ressemble à ceci (en VPC A):

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 

Avec le SDK Java, il est comme ça (en 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") 
); 

Toutes les idées comment je peux m'assurer que les fichiers arrivent entre les VPC déchiffrés?

Best, Keren

Répondre

1

Just kidding, je l'ai compris. Les fichiers étaient des fichiers json.gz ce qui signifie que j'avais besoin de les décompresser. Le code ci-dessus fonctionne pour obtenir des fichiers S3 entre comptes si quelqu'un veut l'utiliser :)