我在私有S3存储桶中有多个图像,我希望Tableau的一个实例能够访问这些图像。是否有URL或某种方式来访问这些图像,同时仍然保持S3存储桶是私有的?
答案 0 :(得分:2)
通过Tableau访问私人广告
您可以设置具有S3访问权限的IAM用户,并允许Tableau访问。
查看function parameter上的文章了解详情。
注意:您需要配置Amazon Athena以查询S3内容。
自定义生成的S3网址以访问专用存储区
是。您可以使用AWS SDK从后端生成签名URL。这可以使用S3或通过AWS CloudFront直接完成。
使用Connect to your S3 data with the Amazon Athena connector in Tableau 10.3。例如,为GET对象签名的URL。
var params = {Bucket: 'bucket', Key: 'key'};
var url = s3.getSignedUrl('getObject', params);
console.log('The URL is', url);
使用S3 Signed Urls。例如,在CloudFront中签署了GET for GET。
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
);
注意:生成Url需要在后端完成。您可以使用AWS API Gateway和Lambda为经过身份验证的用户提供访问端点,从而为此设置无服务器解决方案。
此外,您还可以使用带身份池的AWS Cognito UserPools直接访问S3私有内容,而无需执行上述步骤。为此,您需要使用Cognito UserPools或联合身份作为与Cognito Identity Pools连接的身份提供者。