惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Securelist
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
V
V2EX
小众软件
小众软件
博客园 - 聂微东
H
Help Net Security
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
F
Fortinet All Blogs
S
Schneier on Security
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
Vercel News
Vercel News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
Google Online Security Blog
Google Online Security Blog
Webroot Blog
Webroot Blog
A
Arctic Wolf
量子位
博客园 - 叶小钗
I
Intezer
C
Check Point Blog
Cloudbric
Cloudbric
IT之家
IT之家
Last Week in AI
Last Week in AI
GbyAI
GbyAI
Attack and Defense Labs
Attack and Defense Labs
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog
Jina AI
Jina AI
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cisco Blogs
J
Java Code Geeks
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Engineering at Meta
Engineering at Meta
酷 壳 – CoolShell
酷 壳 – CoolShell
L
Lohrmann on Cybersecurity
有赞技术团队
有赞技术团队
Simon Willison's Weblog
Simon Willison's Weblog
The Register - Security
The Register - Security
T
Threatpost

博客园 - Bo Schwarzstein

发布关于PostGIS对于USD格式的拓展 紫微斗数之自化禄真的是损耗嘛? 紫微斗数个人经验之三合或者四化看哪个 A Practical Methodology, HSM, Handler,Service,Model, for Golang Backend Development 问ChatGPT玄学问题,看来命理师还是不会被取代的 Compile Sqlite3 Executable, Static Library, and Shared Library on Linux Benchmark JuiceFS at AWS 2 Benchmark JuiceFS on AWS 1 Work with AWS VPC, Lambda and Internet Far & Unifield Field Augmented Reality 紫微斗数是否对外国人有用 2022壬寅年天干四化 《中有成就秘笈》之中央密严刹土 IPFS与般若文海 Moira果老星宗七政四余排盘软件下载 Play Old Diablo 2 on macOS Catalina Use Go Micro Web with HTTP Handler 视频平台设计思路大灌顶 Unity Input System教程
Create CloudFront Signed URL in 1 Minute
Bo Schwarzstein · 2022-04-12 · via 博客园 - Bo Schwarzstein

Assume we have

  • AWS Bucket: test-bucket
  • AWS Object: /test-file.jpg
  • AWS Cloudfront: https://test-cdn.cloudfront.net/

Assume the Cloudfront has Original associated with the bucket, let's create signed URL for the file for restricted access.

Step 1 Generate RSA Key Pair for CloudFront

Create private key firstly.

openssl genrsa -out private_key.pem 2048

Extract public key from private key.

openssl rsa -pubout -in private_key.pem -out public_key.pem

Create key group at CloudFront according here, assume the public key ID is test-public-id.

Step 2 Construct Policy for S3 Object

Do not mess up with the Policy CloudFront at panel, the Policy here means the content of signed URL.

Create a JSON text file as below and save it to /tmp/test-policy.txt

{
    "Statement":[
        {
            "Resource":"https://test-cdn.cloudfront.net/test-file.jpg",
            "Condition":{
                "DateLessThan":{
                    "AWS:EpochTime":1649815417
                }
            }
        }
    ]
}

Step 3 Create Signature

Use one line command to generate signed signature for the URL.

cat /tmp/test-policy.log | tr -d "\n" | tr -d " \t\n\r" | openssl sha1 -sign private_key.pem | openssl base64 -A | tr -- '+=/' '-_~'

It would print text test-signature at console which is the signature part of final URL.

Step 4 Construct URL

The URL would be

https://test-cdn.cloudfront.net/test-file.jpg?Expires=1649815417&Signature={test-signature}&Key-Pair-Id={test-public-id}

Done.

posted on 2022-04-12 11:07  Bo Schwarzstein  阅读(416)  评论()    收藏  举报