[英]Amazon S3 - Access to Private Bucket
我在一个专用的S3存储桶中有多个图像,我希望Tableau的实例能够访问这些图像。 是否有URL或某种方式可以访问这些图像,同时仍将S3存储桶设为私有?
通过Tableau访问私有存储桶
您可以设置一个具有对S3的访问权限的IAM用户,并允许Tableau访问。
有关更多详细信息,请参阅Tableau 10.3中有关使用Amazon Athena连接器连接到S3数据的文章。
注意:您需要配置Amazon Athena以查询S3内容。
定制生成的S3敦促访问专用存储桶
是。 您可以使用AWS开发工具包从后端生成签名URL。 可以直接使用S3或通过AWS CloudFront完成。
使用S3 Signed Urls 。 例如,GET对象的签名网址。
var params = {Bucket: 'bucket', Key: 'key'}; var url = s3.getSignedUrl('getObject', params); console.log('The URL is', url);
使用CloudFront签名的网址 。 例如,CloudFront中的GET签名URL。
var cfsign = require('aws-cloudfront-sign'); var signingParams = { keypairId: process.env.PUBLIC_KEY, privateKeyString: process.env.PRIVATE_KEY, // Optional - this can be used as an alternative to privateKeyString privateKeyPath: '/path/to/private/key', expireTime: 1426625464599 } // Generating a signed URL var signedUrl = cfsign.getSignedUrl( 'http://example.cloudfront.net/path/to/s3/object', signingParams );
注意:产生网址必须在您的后端完成。 您可以通过使用AWS API Gateway和Lambda设置一个无服务器解决方案,以提供经过身份验证的用户访问的终端节点。
此外,您也可以将AWS Cognito UserPools与身份池一起使用,以直接访问S3私有内容,而无需执行上述步骤。 为此,您需要使用Cognito用户池或联合身份作为与Cognito身份池连接的身份提供者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.