我是否应该将CloudFront一起用作s3中敏感文件的TemporaryUrl

时间:2018-07-30 02:41:26

标签: laravel amazon-s3 amazon-cloudfront laravel-5.6 laravel-filesystem

我有一个项目,我将文件存储在服务器本身中。存储空间正在增加,因此我需要使用存储桶。我以为s3是必经之路。

问题是pdf文件敏感,我不想将其公开。我读到了一项名为CloudFront的服务,但同时也了解了Laravel TemporaryUrl的新功能。

据我了解,我不应该只使用s3,而我也应该使用TemporaryUrl。我也需要使用CloudFront吗? :呢?还是TemporaryUrl的目的是消除两者之间的CloudFront?

使用TemporaryUrl方法就足够了吗?

s3 -> CloudFront -> TemporaryUrl

我很困惑,真的找不到关于该主题的演练。那么,如何使用Laravel 5.6存储和提供敏感数据?我很高兴得到澄清

1 个答案:

答案 0 :(得分:1)

您可以同时使用CloudFront和laravel的TemporaryUrl。为此,您只需要告诉laravel s3驱动程序使用CloudFront url作为config/filesystem.php中的端点。像这样

's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
        'url' => env('AWS_URL'),
        'endpoint' => env('AWS_ENDPOINT'),
]

现在在您的.env文件中,像这样在其中定义您的clouldFront网址

AWS_ENDPOINT="https://mycloud.cloudfront.net"

现在,当您使用laravel的TemporaryUrl时,它将为您提供cloudFront网址。

编辑 :(评论后)

  

我是否需要使用CloudFront来处理敏感数据

CloudFront用于内容交付网络(CDN)。因此,它与安全性无关,它使用S3存储桶作为源,并根据它的配置从中使用服务器文件。

  

S3是否足以保证安全性?

S3具有足够的文件许可权系统,可以保护您的文件,只需对其进行正确配置即可。您可以将文件私下存储在S3,然后使用laravel TemporaryUrl。它在内部所做的只是创建一个带有到期时间的AWS签名URL。因此,是的,您可以使用它。如果有一天需要加快文件传输速度,请创建CloudFront并将其用作端点