代码之家  ›  专栏  ›  技术社区  ›  whitebear

为什么codepipline需要KMS密钥?

  •  1
  • whitebear  · 技术社区  · 3 年前

    我成功了 CodePipeline 来构建源代码 CodeCommit ECR 通过 cdk

    在部署这个cdk代码时,密钥的名称如下

    codepipeline-cdkmynavirepomynavipipelinefe7f8d68 这是中国制造的 KMS customer managed key

    我不知道这是为什么,我不想用这个。

    这把钥匙是为什么或在哪里制造的?

    const adminPipeline = new codepipeline.Pipeline(this, 'mynaviPipeline', {
      pipelineName: 'cdk-mynavi-pl',
    });
    
    
    const mynavi_cc_repo_name = 'cdk-mynavi-cc'
    const mynavi_cc_repo = new codecommit.Repository(this,
      "mynavi-cc-repo",{
        repositoryName: mynavi_cc_repo_name,
        description:"for resizer repo"
    })
    
    const adminBuildProject = new codebuild.PipelineProject(this, 'adminBuildproject', {
      environment: {
        buildImage:codebuild.LinuxBuildImage.STANDARD_4_0,
        privileged:true, 
      },
      buildSpec: codebuild.BuildSpec.fromSourceFilename("./buildspec.yml")
    });
    const adminSourceOutput = new codepipeline.Artifact();
    const adminSourceAction = new cdk.aws_codepipeline_actions.CodeCommitSourceAction({
      actionName: 'AdminSource',
      repository: mynavi_cc_repo,
      output: adminSourceOutput,
      trigger:  cdk.aws_codepipeline_actions.CodeCommitTrigger.POLL,
    })
    
    const dockerHubSecretArn = 'arn:aws:secretsmanager:ap-northeast-1:678100228231:secret:docker_login-TBFA5B';
    const dockerHubSecret = secretsmanager.Secret.fromSecretCompleteArn(this, 'SecretFromCompleteArn', dockerHubSecretArn);
    
    dockerHubSecret.grantRead(adminBuildProject)
    
    cronEcrRepo.grantPullPush(adminBuildProject)
    djangoEcrRepo.grantPullPush(adminBuildProject)
    nginxEcrRepo.grantPullPush(adminBuildProject)
    
    const adminBuildOutput = new codepipeline.Artifact();
    const adminBuildAction = new cdk.aws_codepipeline_actions.CodeBuildAction({
      actionName: 'AdminCodeBuild',
      project: adminBuildProject,
      input: adminSourceOutput,
      outputs: [adminBuildOutput]
    });
    
    adminPipeline.addStage({
      stageName: "mynaviSource",
      actions: [adminSourceAction],
    });
    adminPipeline.addStage({
      stageName : "mynaviBuild",
      actions: [adminBuildAction]
    });
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   baduker    3 年前

    这和 静止加密 .

    CodePipeline中的数据在静止状态下使用AWS KMS密钥进行加密。代码工件存储在客户拥有的S3存储桶中,并使用AWS托管密钥或客户托管密钥进行加密。

    加密 codepipline 人工制品是 默认情况下启用 .

    如果选择加密代码工件的默认选项,CodePipeline将使用AWS托管密钥。无法更改或删除此AWS托管密钥。

    不能 禁用加密,但可以选择加密工件的方式。

    好的是,如果使用默认选项,就不必管理加密密钥。

    例如,可以在 CodePipeline 慰问:

    enter image description here

    更多关于 Data Protection in AWS CodePipeline .