使用scala访问securestring ssm参数

pcrecxhr  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(440)

我在glue中使用scala脚本来访问具有依赖库的第三方供应商。你可以看到我正在做的模板
这个解决方案工作得很好,但是使用clear中存储的参数运行。我想把它们移到aws ssm中,并将它们存储为securestring。要实现这一点,我相信函数必须从kms中提取cmk,然后提取securestring并使用cmk对其进行解密。
我翻遍了互联网,试图找到一些简单的代码示例,比如从scala中提取ssm参数,但什么都找不到。我刚刚开始使用这种语言,对它的结构不是很熟悉,是否期望awsjava库也能在scala中运行这些类型的操作?我已经试过了,但是在glue中出现了编译错误。举个例子

  1. import software.amazon.awscdk.services.ssm.StringParameter;
  2. object SfdcExtractData {
  3. def main(sysArgs: Array[String]) {
  4. print("starting")
  5. String secureStringToken = StringParameter.valueForSecureStringParameter(this, "my-secure-parameter-name", 1); // must specify version

给出了一个编译错误,尽管aws glue不能很好地告诉我问题是什么。
谢谢你的时间!如果你有任何代码的例子,见解,或资源,请让我知道。我的工作是在spark 2.4上运行scala 2

xqkwcwgp

xqkwcwgp1#

可以使用以下代码段执行此操作

  1. import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagementClient
  2. import com.amazonaws.services.simplesystemsmanagement.model.GetParameterRequest
  3. import com.amazonaws.services.simplesystemsmanagement.model.GetParameterResult
  4. // create a client AWSSimpleSystemsManagementClient object
  5. val client = new AWSSimpleSystemsManagementClient()
  6. // Create a GetParameterRequest object, which send the actual request
  7. val req = new GetParameterRequest()
  8. // set the name of the parameter in the object.
  9. req.setName("test")
  10. // Only needed if the parameter is a secureString encrypted with the default kms key. If you're using a CMK you need to add the glue user as a key user. To do so, navigate to KMS console --> Customer Managed Keys --> Click on KMS key used for encryption --> Under Key policies --> Key user --> Add ( Add the Glue role )
  11. req.setWithDecryption(true)
  12. // call the getParameter() function on the object
  13. val param = client.getParameter(req)

记住给你的胶水角色iam权限给ssm了!

展开查看全部

相关问题