Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 AWS S3文件跨帐户不解密_Amazon S3_Aws Sdk_Aws Cli_Aws Kms - Fatal编程技术网

Amazon s3 AWS S3文件跨帐户不解密

Amazon s3 AWS S3文件跨帐户不解密,amazon-s3,aws-sdk,aws-cli,aws-kms,Amazon S3,Aws Sdk,Aws Cli,Aws Kms,我目前正在尝试访问另一个VPC中的S3文件,并且我能够成功访问。但是当这些文件进来时,它们仍然是加密的 我在VPC A中有一些机器正在尝试读取VPC B中的S3文件。当这些文件进入VPC B中的存储桶时,服务器端对其进行了加密。我成功地承担了角色,并将文件从VPC B中的S3存储桶发送到了VPC A。但是,我在VPC A中的机器中的文件应该以json的形式发送,但看起来仍然是加密的 当我让VPC A中的机器从VPC A中的S3存储桶读取服务器端加密文件时,我就没有这个问题了。这些文件似乎是自动解

我目前正在尝试访问另一个VPC中的S3文件,并且我能够成功访问。但是当这些文件进来时,它们仍然是加密的

我在VPC A中有一些机器正在尝试读取VPC B中的S3文件。当这些文件进入VPC B中的存储桶时,服务器端对其进行了加密。我成功地承担了角色,并将文件从VPC B中的S3存储桶发送到了VPC A。但是,我在VPC A中的机器中的文件应该以json的形式发送,但看起来仍然是加密的

当我让VPC A中的机器从VPC A中的S3存储桶读取服务器端加密文件时,我就没有这个问题了。这些文件似乎是自动解密的

通过CLI命令执行的命令与此类似(在VPC A中):

对于Java SDK,它是这样的(在VPC A中):

关于如何确保文件在VPC之间经过解密,有什么想法吗

最好的,
克伦

只是开玩笑,我已经弄明白了。这些文件是json.gz文件,这意味着我需要解压缩它们。如果有人想使用S3文件,上面的代码可以跨帐户获取S3文件:)

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
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")
);