- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
通过 aws cli 工具在 AWS 上创建新的 RDS 实例时,是否可以使用使用 AWS KMS key 加密的主密码?例如。使用此命令:http://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html
我问是因为我不想在我的开发环境中存储明文密码(使用 terraform 或云形成),而是存储由相应的 AWS 组件透明解密的加密值。
最佳答案
如果您想使用 CLI 执行此操作,您始终可以使用 KMS key 加密密码,然后运行两个命令来解密密码并创建数据库。
所以这样的事情可能会起作用:
aws rds create-instance ... \
--master-username admin-user \
--master-user-password `aws kms decrypt --ciphertext-blob fileb://path/to/kms/encrypted/file/with/password --output text --query Plaintext | base64 --decode`
如果您仍想使用 Terraform 来创建数据库实例,那么我有 previously answered a question along similar lines 。尽管这个问题更关注存储在远程状态文件中的数据库。
如果您同样担心在代码中保留密码,那么我会考虑简单地为您的密码使用变量,然后使用 passing that in on the CLI 或使用 environment variable 。
同样,您可以使用 aws_kms_secret
data source 即时解密您的密码。不过,这会将密码泄露到日志和状态文件中:
$ echo -n 'master-password' > plaintext-password
$ aws kms encrypt \
> --key-id ab123456-c012-4567-890a-deadbeef123 \
> --plaintext fileb://plaintext-example \
> --encryption-context foo=bar \
> --output text --query CiphertextBlob
AQECAHgaPa0J8WadplGCqqVAr4HNvDaFSQ+NaiwIBhmm6qDSFwAAAGIwYAYJKoZIhvcNAQcGoFMwUQIBADBMBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDI+LoLdvYv8l41OhAAIBEIAfx49FFJCLeYrkfMfAw6XlnxP23MmDBdqP8dPp28OoAQ==
然后在 Terraform 中:
data "aws_kms_secret" "db" {
secret {
name = "master_password"
payload = "AQECAHgaPa0J8WadplGCqqVAr4HNvDaFSQ+NaiwIBhmm6qDSFwAAAGIwYAYJKoZIhvcNAQcGoFMwUQIBADBMBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDI+LoLdvYv8l41OhAAIBEIAfx49FFJCLeYrkfMfAw6XlnxP23MmDBdqP8dPp28OoAQ=="
context {
foo = "bar"
}
}
}
resource "aws_rds_cluster" "rds" {
master_username = "root"
master_password = "${data.aws_kms_secret.db.master_password}"
# ...
}
关于mysql - AWS : Using a KMS-encrypted master password to create a RDS instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42841759/
我的 aws 帐户位于 us-west-2 区域。并且在该账户中创建的 KMS key 具有 ARN arn:aws:kms:us-east-1::key/。在我的节点模块中,我使用 Credstas
当encrypting symmetrically使用 Google Cloud 的 KMS,Google Cloud automatically选择主键版本: Each symmetric encr
我需要使用客户端 key 加密一些文本字符串,然后使用与客户端加密相同的 key 在服务器端解密此加密字符串。 据我了解,AWS KMS 是建立在 AES 之上的。 那么我可以使用 CryptoJS
我已经创建了一个谷歌云项目并启用了 谷歌云 key 管理服务 (KMS) API。我创建了两个 key 圈。 keyring1位于us-east1,keyring2位于global。我创建了以下 ja
使用 Cloudformation 创建新的 KMS key 时,我在“状态原因”列中看到此消息: Did not have IAM permissions to process tags on AW
在阅读Cloudera KMS Installation procedure时,我发现 Cloudera strongly recommends not using Java Keystore KMS
Amazon Key Management Services 背后使用哪些算法或加密方法? 我搜索了它,但只找到了与配置相关的信息,而不是集成信息。 最佳答案 我会在这个答案的开头说,如果你真的感兴趣
我必须将.Net Core应用程序从Google App Engine移至Google Kubernetes Engine,因为我需要静态IP,可惜Google App Engine没有该选项。 我设
我使用 AWS SDK iOS v2.6.21 以编程方式将 KMS (SSE-KMS) 加密添加到 AWS S3 存储桶。我使用以下 Objective-C 代码执行此操作: AWSS3 *awsC
我正在寻求帮助,使用 KMS 在 Hive 中实现列级加密(与 https://issues.apache.org/jira/browse/HIVE-7934 完全相似)。虽然我清楚所引用 URL 中
我是 hadoop KMS 的新手,我已经使用 hadoop 启动了 KMS。现在我尝试运行这个 curl 命令 curl -i --header "Accept:application/json"
我不确定为什么我们需要这个 Hadoop KMS 正是为了?我浏览了 Apache Hadoop 的官方文档,并没有确切提到为什么我们需要这个概念。我唯一清楚的是,使用此 client 和 serve
我搜索了 Google 结果,这似乎是不可能的,所以:有人知道如何使用 KMS 在控制台中更改或设置特定的视频分辨率吗? 我没有使用任何图形服务器或图形子系统,所以这个问题只与控制台有关。 我使用的是
我正在尝试验证使用 Google 的云 KMS 生成的签名,但我不断收到无效响应。 这是我测试它的方式: const versionName = client.cryptoKeyVersionPath
我的问题可能听起来太明显了,但我是 Amazon KMS 的新手。在阅读了 AWS 上的大量文档后,我了解到,如果我直接使用 CMK 进行加密和解密,我可以直接通过创建加密和解密请求来完成。但我不清楚
我已经能够使用私钥签署云端 URL,但很难保证私钥的安全。我正在考虑使用 KMS 来保证私钥的安全,有没有办法使用存储在亚马逊 KMS 中的 key 对 URL 进行签名? 最佳答案 答案是否定的,C
给定一个定义了以下内容的 CloudFormation 模板: KMS key KMS key 别名 一个 S3 存储桶 如果由于某种原因我需要删除 CloudFormation 堆栈并重新部署,删除
这是一个新手安全/控制台问题......我在我的项目中在欧洲的一个特定(错误)位置创建了一个 key 环。 我在控制台中看不到任何编辑甚至删除 key 环的方法。 key 圈完全是空的……里面没有 k
如何使用 boto3 资源从 S3 存储桶读取 KMS 加密文件? 下面是我用来读取非加密文件的片段 - s3 = boto3.resource('s3') obj = s3.Object(bucke
我正在 AWS Lambda 上编写无服务器函数。 在某些情况下,我需要使用 kms:GenerateDataKey*权限。 这样做的目的究竟是什么。我检查了 AWS 文档,但它太神秘了。有人可以举一
我是一名优秀的程序员,十分优秀!