我有一个应用程序将用于处理一些高度敏感的文档。
目的是通过我的应用程序将这些文档上传到 S3。这些文档也只能由我的应用程序根据需要检索。
正如我所读到的,S3 提供服务器端加密 (SSE),其中数据分别在上传/下载时透明地加密和解密。
既然如此,这似乎是我对 S3 存储桶进行的任何错误配置,或者如果我的 AWS 凭证遭到泄露,攻击者就可以访问我在 S3 中的所有敏感数据。我知道我应该确保不会错误配置 S3 并保护我的凭据,但我也知道事情会发生。
基本上,据我所知,服务器端加密实际上是一个“勾选框”类型的选项,允许您说您有静态加密,但不能保护您免受最常见的 S3 数据泄漏(存储桶配置错误和信用受到损害)。
言归正传,客户端加密似乎是我的最佳选择。也就是说,我还没有读到很多关于在整个数据生命周期中管理用于在客户端加密数据的密钥的好选择。
我的问题是
您可以指定 SQS 作为 Lambda 函数的事件源,并可以选择定义批处理窗口持续时间。
您还可以指定WaitTimeSeconds呼叫的ReceiveMessage。
这两种设置之间的主要区别是什么?
有哪些用例?
当我尝试选择 Java 8 作为 AWS Lambda 函数的运行时时,它显示:
代码编辑器不支持 Java 8 运行时。
正如以下公告所指出的,SonarSource 终止了对使用 11 版之前的 Java 版本运行代码分析器的支持:
2021 年 1 月 - 将分析移至 Java 11
扫描仪环境中安装的 Java 版本必须在 2021 年 2 月 1 日之前至少升级到 Java 11。Java 11 之前的版本已被弃用,使用它们的扫描仪将在该日期停止运行。
此外,2021 年 1 月 11 日至 2021 年 1 月 15 日期间将会出现限电,在此期间,使用低于 11 的 Java 版本的扫描仪运行的首次分析将失败。为了避免这种不便,您应该在 2021 年 1 月 11 日之前升级。
这里讨论的 Java 安装特指在运行 SonarCloud 扫描仪分析工具的上下文中安装和使用的 JDK 或 JRE。这可能是您本地的构建环境或您的 Cl 服务。
这不会对项目代码所针对的 Java 版本产生任何影响。您仍然可以分析目标版本低于 11 的 Java 项目。
我尝试搜索有关如何运行 bitbucket 管道以使用 java 11 分析器执行 SonarScanner 分析的完整示例,但目标代码使用 java 11 之前的版本(例如 java …
我正在使用 AWS Lambda 函数 (Node.js 14.x) 调用 CognitorevokeToken函数来撤销刷新令牌。
根据官方文档,“revokeToken”将:
撤销由指定刷新令牌生成的所有访问令牌。令牌被撤销后,您将无法使用撤销的令牌访问 Cognito 认证的 API。
虽然我可以成功撤销刷新令牌和关联的访问令牌,但仍然可以使用之前创建的访问令牌来访问 API 网关资源(启用了 Cognito 用户池身份验证)。
RevokeToken为什么使用Cognito的方法撤销访问令牌后仍然可以授权对API网关的请求?
我注册了一个免费的 AWS Lambda 帐户,并创建了一个简单的公共服务供我和其他人使用。然而,由于我还不知道使用情况如何,所以我现在要小心。否则,有人可能会简单地向我的服务发送一百万个请求,我就会为此付费。我宁愿不提供该服务。
因此,我想创建一个预算操作,一旦超过 0.01 美元,就关闭所有服务。我这样做的方法是,我向 Lambda 服务角色(在设置 lambda 服务时自动创建)授予预算权限 (budgets.amazonaws.com),然后进行 IAM 操作设置,添加AWSDenyAll一旦超出预算,就对角色本身进行管理政策。
这似乎不起作用。如果我手动附加AWSDenyAll策略,Lambda 服务仍然可用。我对角色/政策系统的理解也可能从根本上是错误的。
如何实现可从预算警报触发的“完全关闭”操作?
页面上有一条注释aws_s3_bucket_object说它已被弃用并可以使用aws_s3_bucket:
aws_s3_bucket_object 资源已弃用,并将在未来版本中删除!请改用 aws_s3_object,其中将添加新功能和修复。在配置中将 aws_s3_bucket_object 替换为 aws_s3_object 时,在下次应用时,Terraform 将重新创建该对象。如果您不想让 Terraform 重新创建对象,请使用 aws_s3_object 导入对象。
当我转到该aws_s3_bucket页面时,没有如何上传文件的示例,只有如何创建存储桶。网上的一些文章也指出使用aws_s3_bucket创建存储桶但仍然使用aws_s3_bucket_object上传文件,这仍然是正确的做法吗?
使用 AWS 控制台 --> AWS Cost Management --> Cost Explorer 时 - 我得到以下值:
当我使用@aws-sdk/client-cost-explorer“EC2 - 其他”和“Amazon Load Balancer”时,我得到不同的结果。
配置:
import { CostExplorerClient, GetCostAndUsageCommand } from '@aws-sdk/client-cost-explorer';
const client = new CostExplorerClient({
region,
credentials: {
accessKeyId,
secretAccessKey
}
});
const params = {
TimePeriod: {
Start: startDate,
End: endDate
},
Filter: {
Dimensions: {
Key: 'SERVICE',
Values: [
'EC2 - Other', 'Amazon ElastiCache'
]
}
},
GroupBy: [
{
Type: 'DIMENSION',
Key: 'SERVICE',
},
],
Granularity: 'DAILY',
Metrics: [ …Run Code Online (Sandbox Code Playgroud) javascript amazon-web-services node.js aws-sdk-js aws-sdk-js-v3
我有一个有 30 个版本的 Lambda。我想删除 Lambda 版本 1-25(含)。
如何使用 AWS CLI 执行此操作?
我正在尝试使用 Terraform 创建新的 AWS Cognito 用户池,目前遇到以下问题:
我一直在尝试获取电子邮件地址或电话号码->允许选择电子邮件地址(如下以红色显示),而不是当前选择的地址(用户名->还允许使用经过验证的电子邮件地址登录)
我的文件的相关部分main.tf如下所示:
resource "aws_cognito_user_pool" "app_cognito_user_pool" {
name = "app_cognito_user_pool"
alias_attributes = ["email"]
auto_verified_attributes = ["email"]
account_recovery_setting {
recovery_mechanism {
name = "verified_email"
priority = 1
}
}
}
resource "aws_cognito_user_pool_client" "app_cognito_user_pool_client" {
name = "app_cognito_user_pool_client"
user_pool_id = aws_cognito_user_pool.app_cognito_user_pool.id
prevent_user_existence_errors = "ENABLED"
supported_identity_providers = ["COGNITO"]
}
resource "aws_cognito_user_pool_domain" "app_cognito_user_pool_domain" {
domain = "app"
user_pool_id = aws_cognito_user_pool.app_cognito_user_pool.id
}
Run Code Online (Sandbox Code Playgroud)
无论我尝试什么,我总是选择Username,而不是电子邮件地址或电话号码。我希望用户池不要使用用户名,而是使用电子邮件地址。
我缺少哪些 …
amazon-web-services amazon-cognito terraform terraform-provider-aws
aws-lambda ×5
amazon-s3 ×2
terraform ×2
amazon-sqs ×1
aws-cli ×1
aws-sdk ×1
aws-sdk-js ×1
encryption ×1
java ×1
java-11 ×1
javascript ×1
jwt ×1
node.js ×1
sonarcloud ×1
sonarqube ×1