CodePipeline

Definition

AWS CodePipeline is a continuous integration and continuous delivery (CI/CD) service for fast and reliable application and infrastructure updates. It automates the build, test, and deploy phases of your release process every time there is a code change, based on the release model you define. CodePipeline integrates with various AWS services and third-party tools, enabling a seamless workflow for deploying applications and infrastructure.

Secure Settings Example

version: 1
stages:
  - name: Source
    actions:
      - name: SourceAction
        actionTypeId:
          category: Source
          owner: AWS
          provider: CodeCommit
          version: 1
        configuration:
          RepositoryName: my-secure-repo
          BranchName: main
        outputArtifacts:
          - name: SourceOutput
  - name: Deploy
    actions:
      - name: DeployAction
        actionTypeId:
          category: Deploy
          owner: AWS
          provider: CodeDeploy
          version: 1
        configuration:
          ApplicationName: MyApp
          DeploymentGroupName: MyAppDeploymentGroup
        inputArtifacts:
          - name: SourceOutput
        roleArn: arn:aws:iam::123456789012:role/CodePipelineServiceRole

Insecure Settings Example

version: 1
stages:
  - name: Source
    actions:
      - name: SourceAction
        actionTypeId:
          category: Source
          owner: AWS
          provider: CodeCommit
          version: 1
        configuration:
          RepositoryName: my-insecure-repo
          BranchName: main
        outputArtifacts:
          - name: SourceOutput
  - name: Deploy
    actions:
      - name: DeployAction
        actionTypeId:
          category: Deploy
          owner: AWS
          provider: CodeDeploy
          version: 1
        configuration:
          ApplicationName: MyApp
          DeploymentGroupName: MyAppDeploymentGroup
        inputArtifacts:
          - name: SourceOutput
        roleArn: arn:aws:iam::123456789012:role/CodePipelineServiceRoleWithExcessivePermissions