如何使用加密阶段并提供KMS密钥进行加密?

时间:2019-05-14 16:56:03

标签: encryption streamsets

我想加密dob字段。所以我试图在流集中使用加密阶段。 我传递了密钥ID,密钥和KMS ARN。 当我尝试验证管道时,出现以下错误:

2019-05-14 16:52:36,492 xxxx_pipeline_5b58f6b1-d8d8-4349-b963-a513b9f3bf64  WARN    Stage 'EncryptandDecryptFields_01' initialization error: com.amazonaws.encryptionsdk.exception.AwsCryptoException: Can't use non-ARN key identifiers or aliases when no default region is set   Pipeline    *admin  0   preview-pool-1-thread-3
com.amazonaws.encryptionsdk.exception.AwsCryptoException: Can't use non-ARN key identifiers or aliases when no default region is set
    at com.amazonaws.encryptionsdk.kms.KmsMasterKeyProvider$Builder.build(KmsMasterKeyProvider.java:250)
    at com.streamsets.pipeline.stage.processor.crypto.FieldEncryptProcessor.createCryptoMaterialsManager(FieldEncryptProcessor.java:142)
    at com.streamsets.pipeline.stage.processor.crypto.FieldEncryptProcessor.createProvider(FieldEncryptProcessor.java:112)
    at com.streamsets.pipeline.stage.processor.crypto.FieldEncryptProcessor.init(FieldEncryptProcessor.java:90)
    at com.streamsets.pipeline.api.base.BaseStage.init(BaseStage.java:48)
    at com.streamsets.pipeline.api.base.configurablestage.DStage.init(DStage.java:36)
    at com.streamsets.datacollector.runner.StageRuntime.lambda$init$0(StageRuntime.java:211)
    at com.streamsets.datacollector.util.LambdaUtil.withClassLoaderInternal(LambdaUtil.java:148)
    at com.streamsets.datacollector.util.LambdaUtil.withClassLoader(LambdaUtil.java:44)
    at com.streamsets.datacollector.runner.StageRuntime.init(StageRuntime.java:209)
    at com.streamsets.datacollector.runner.StagePipe.init(StagePipe.java:123)
    at com.streamsets.datacollector.runner.StagePipe.init(StagePipe.java:47)
    at com.streamsets.datacollector.runner.Pipeline.initPipe(Pipeline.java:403)
    at com.streamsets.datacollector.runner.Pipeline.lambda$init$0(Pipeline.java:393)
    at com.streamsets.datacollector.runner.PipeRunner.forEach(PipeRunner.java:166)
    at com.streamsets.datacollector.runner.Pipeline.init(Pipeline.java:391)
    at com.streamsets.datacollector.runner.Pipeline.validateConfigs(Pipeline.java:219)
    at com.streamsets.datacollector.runner.preview.PreviewPipeline.validateConfigs(PreviewPipeline.java:60)
    at com.streamsets.datacollector.execution.preview.sync.SyncPreviewer.validateConfigs(SyncPreviewer.java:142)
    at com.streamsets.datacollector.execution.preview.async.AsyncPreviewer$1.call(AsyncPreviewer.java:70)
    at com.streamsets.pipeline.lib.executor.SafeScheduledExecutorService$SafeCallable.lambda$call$0(SafeScheduledExecutorService.java:226)
    at com.streamsets.datacollector.security.GroupsInScope.execute(GroupsInScope.java:33)
    at com.streamsets.pipeline.lib.executor.SafeScheduledExecutorService$SafeCallable.call(SafeScheduledExecutorService.java:222)
    at com.streamsets.pipeline.lib.executor.SafeScheduledExecutorService$SafeCallable.lambda$call$0(SafeScheduledExecutorService.java:226)
    at com.streamsets.datacollector.security.GroupsInScope.execute(GroupsInScope.java:33)
    at com.streamsets.pipeline.lib.executor.SafeScheduledExecutorService$SafeCallable.call(SafeScheduledExecutorService.java:222)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at com.streamsets.datacollector.metrics.MetricSafeScheduledExecutorService$MetricsTask.run(MetricSafeScheduledExecutorService.java:100)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

在关键的“提供”标签中,

我传递了密钥ID,密钥和KMS ARN。

不适用

此阶段应该编译没有错误

0 个答案:

没有答案