amazon-web-services - AWS CDK 中 S3 存储桶策略中的白名单 IP 地址
问题描述
我正在尝试使用 AWS CDK 编写我的基础设施,而不是像以前那样使用控制台构建它。我正在编写我的 S3 存储桶策略,并且对如何提供条件感到困惑。我的目标是从按预期工作的 AWS 控制台重新创建此存储桶策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::**********/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "*********"
}
}
}
]
}
我当前的存储桶策略的 aws cdk 代码如下所示:
const bucketPolicy = new iam.PolicyStatement({
actions: ['s3:GetObject'],
resources: [`${bucket.bucketArn}/*`],
principals: [new iam.Anyone()],
conditions: ...
});
提前感谢您的帮助!
解决方案
我只是通过这样做解决了它:
const bucketPolicy = new iam.PolicyStatement({
actions: ['s3:GetObject'],
resources: [`${bucket.bucketArn}/*`],
principals: [new iam.Anyone()],
conditions: {
'IpAddress': {
'aws:SourceIp': '***.***.***.***'
}
}
});
推荐阅读
- reactjs - React useState 没有更新 Array.map 函数中的值
- python - c++ 中是否有类似 python 中的 subprocess.Popen() 的功能?
- reactjs - Why is my component rendered twice in react.js 16.x?
- python - 在 Python 中删除回车的问题
- c++ - 关于类的一些问题
- php - 来自 Sql Server 数据库的 Woocommerce 提要产品
- mysql - 乘以函数mysql
- python - 如何在 KivyMD 中设置文本字段小部件的高度
- flutter - 如何在颤动中更新联系人
- java - Jenetics 计算整个人群的健康状况