Skip to main content

Getting Started

Installation

To get started, first download the application from the releases page. Then, follow the instructions below to set up the application. Downloads are available for Windows, macOS, and Linux.

Set up your cloud provider

  1. Log in to the Amazon Web Services console
  2. Navigate to the AWS Identity and Access Management (IAM) console

AWS IAM Console

The AWS IAM Console

  1. Click on Users in the left sidebar
  2. Click on Add user

Add User AWS IAM Console

Add a user to your account

  1. Enter a username - this will be used to identify the creator of all resources in your account
  2. Click on Next
  3. Click on Attach existing policies directly

Attach policies user AWS IAM Console

Attach policies to the new user in the AWS IAM console

  1. Search for the following policies and select them:
    • AWSCloudFormationFullAccess
    • AmazonEC2FullAccess
    • AmazonS3FullAccess
    • IAMFullAccess
    • AWSBatchFullAccess
    • CloudWatchFullAccess
    • AWSCodeCommitFullAccess
    • AWSCodeBuildAdminAccess
    • AWSCodePipeline_FullAccess
    • AmazonSSMFullAccess
warning

These policies are used by the application to create and manage all resources required to run your application. It is recommended that you restrict these permissions to only the resources required for your application.

View instructions for restricting permissions even further
  1. Navigate to the Policies page in the AWS IAM console

  2. Click on "Create policy"

  3. Click on "JSON"

  4. Paste the following JSON into the editor:

    View Document
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Action": "ec2:*",
                "Effect": "Allow",
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": "elasticloadbalancing:*",
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": "cloudwatch:*",
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": "autoscaling:*",
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "cloudformation:*"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "s3:*",
                    "s3-object-lambda:*"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "iam:*"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "batch:*",
                    "cloudwatch:GetMetricStatistics",
                    "ec2:DescribeSubnets",
                    "ec2:DescribeSecurityGroups",
                    "ec2:DescribeKeyPairs",
                    "ec2:DescribeVpcs",
                    "ec2:DescribeImages",
                    "ec2:DescribeLaunchTemplates",
                    "ec2:DescribeLaunchTemplateVersions",
                    "ecs:Describe*",
                    "ecs:List*",
                    "eks:DescribeCluster",
                    "eks:ListClusters",
                    "logs:Describe*",
                    "logs:Get*",
                    "logs:TestMetricFilter",
                    "logs:FilterLogEvents",
                    "iam:ListInstanceProfiles",
                    "iam:ListRoles"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "iam:PassRole"
                ],
                "Resource": [
                    "arn:aws:iam::*:role/AWSBatchServiceRole",
                    "arn:aws:iam::*:role/service-role/AWSBatchServiceRole",
                    "arn:aws:iam::*:role/ecsInstanceRole",
                    "arn:aws:iam::*:instance-profile/ecsInstanceRole",
                    "arn:aws:iam::*:role/iaws-ec2-spot-fleet-role",
                    "arn:aws:iam::*:role/aws-ec2-spot-fleet-role",
                    "arn:aws:iam::*:role/AWSBatchJobRole*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "autoscaling:Describe*",
                    "cloudwatch:*",
                    "logs:*",
                    "sns:*",
                    "iam:GetPolicy",
                    "iam:GetPolicyVersion",
                    "iam:GetRole",
                    "oam:ListSinks"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "codecommit:*"
                ],
                "Resource": "*"
            },
            {
                "Sid": "CloudWatchEventsCodeCommitRulesAccess",
                "Effect": "Allow",
                "Action": [
                    "events:DeleteRule",
                    "events:DescribeRule",
                    "events:DisableRule",
                    "events:EnableRule",
                    "events:PutRule",
                    "events:PutTargets",
                    "events:RemoveTargets",
                    "events:ListTargetsByRule"
                ],
                "Resource": "arn:aws:events:*:*:rule/codecommit*"
            },
            {
                "Sid": "SNSTopicAndSubscriptionAccess",
                "Effect": "Allow",
                "Action": [
                    "sns:CreateTopic",
                    "sns:DeleteTopic",
                    "sns:Subscribe",
                    "sns:Unsubscribe",
                    "sns:SetTopicAttributes"
                ],
                "Resource": "arn:aws:sns:*:*:codecommit*"
            },
            {
                "Sid": "SNSTopicAndSubscriptionReadAccess",
                "Effect": "Allow",
                "Action": [
                    "sns:ListTopics",
                    "sns:ListSubscriptionsByTopic",
                    "sns:GetTopicAttributes"
                ],
                "Resource": "*"
            },
            {
                "Sid": "LambdaReadOnlyListAccess",
                "Effect": "Allow",
                "Action": [
                    "lambda:ListFunctions"
                ],
                "Resource": "*"
            },
            {
                "Sid": "IAMReadOnlyListAccess",
                "Effect": "Allow",
                "Action": [
                    "iam:ListUsers"
                ],
                "Resource": "*"
            },
            {
                "Sid": "IAMReadOnlyConsoleAccess",
                "Effect": "Allow",
                "Action": [
                    "iam:ListAccessKeys",
                    "iam:ListSSHPublicKeys",
                    "iam:ListServiceSpecificCredentials"
                ],
                "Resource": "arn:aws:iam::*:user/${aws:username}"
            },
            {
                "Sid": "IAMUserSSHKeys",
                "Effect": "Allow",
                "Action": [
                    "iam:DeleteSSHPublicKey",
                    "iam:GetSSHPublicKey",
                    "iam:ListSSHPublicKeys",
                    "iam:UpdateSSHPublicKey",
                    "iam:UploadSSHPublicKey"
                ],
                "Resource": "arn:aws:iam::*:user/${aws:username}"
            },
            {
                "Sid": "IAMSelfManageServiceSpecificCredentials",
                "Effect": "Allow",
                "Action": [
                    "iam:CreateServiceSpecificCredential",
                    "iam:UpdateServiceSpecificCredential",
                    "iam:DeleteServiceSpecificCredential",
                    "iam:ResetServiceSpecificCredential"
                ],
                "Resource": "arn:aws:iam::*:user/${aws:username}"
            },
            {
                "Sid": "CodeStarNotificationsReadWriteAccess",
                "Effect": "Allow",
                "Action": [
                    "codestar-notifications:CreateNotificationRule",
                    "codestar-notifications:DescribeNotificationRule",
                    "codestar-notifications:UpdateNotificationRule",
                    "codestar-notifications:DeleteNotificationRule",
                    "codestar-notifications:Subscribe",
                    "codestar-notifications:Unsubscribe"
                ],
                "Resource": "*"
            },
            {
                "Sid": "CodeStarNotificationsListAccess",
                "Effect": "Allow",
                "Action": [
                    "codestar-notifications:ListNotificationRules",
                    "codestar-notifications:ListTargets",
                    "codestar-notifications:ListTagsforResource",
                    "codestar-notifications:ListEventTypes"
                ],
                "Resource": "*"
            },
            {
                "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
                "Effect": "Allow",
                "Action": [
                    "sns:CreateTopic",
                    "sns:SetTopicAttributes"
                ],
                "Resource": "arn:aws:sns:*:*:codestar-notifications*"
            },
            {
                "Sid": "AmazonCodeGuruReviewerFullAccess",
                "Effect": "Allow",
                "Action": [
                    "codeguru-reviewer:AssociateRepository",
                    "codeguru-reviewer:DescribeRepositoryAssociation",
                    "codeguru-reviewer:ListRepositoryAssociations",
                    "codeguru-reviewer:DisassociateRepository",
                    "codeguru-reviewer:DescribeCodeReview",
                    "codeguru-reviewer:ListCodeReviews"
                ],
                "Resource": "*"
            },
            {
                "Sid": "CloudWatchEventsManagedRules",
                "Effect": "Allow",
                "Action": [
                    "events:PutRule",
                    "events:PutTargets",
                    "events:DeleteRule",
                    "events:RemoveTargets"
                ],
                "Resource": "*",
                "Condition": {
                    "StringEquals": {
                        "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
                    }
                }
            },
            {
                "Sid": "CodeStarNotificationsChatbotAccess",
                "Effect": "Allow",
                "Action": [
                    "chatbot:DescribeSlackChannelConfigurations"
                ],
                "Resource": "*"
            },
            {
                "Sid": "CodeStarConnectionsReadOnlyAccess",
                "Effect": "Allow",
                "Action": [
                    "codestar-connections:ListConnections",
                    "codestar-connections:GetConnection"
                ],
                "Resource": "arn:aws:codestar-connections:*:*:connection/*"
            },
            {
            "Action": [
                "codebuild:*",
                "codecommit:GetBranch",
                "codecommit:GetCommit",
                "codecommit:GetRepository",
                "codecommit:ListBranches",
                "codecommit:ListRepositories",
                "cloudwatch:GetMetricStatistics",
                "ec2:DescribeVpcs",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ecr:DescribeRepositories",
                "ecr:ListImages",
                "elasticfilesystem:DescribeFileSystems",
                "events:DeleteRule",
                "events:DescribeRule",
                "events:DisableRule",
                "events:EnableRule",
                "events:ListTargetsByRule",
                "events:ListRuleNamesByTarget",
                "events:PutRule",
                "events:PutTargets",
                "events:RemoveTargets",
                "logs:GetLogEvents",
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets"
            ],
            "Effect": "Allow",
            "Resource": "*"
            },
            {
                "Action": [
                    "logs:DeleteLogGroup"
                ],
                "Effect": "Allow",
                "Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/*:log-stream:*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "ssm:PutParameter"
                ],
                "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "ssm:StartSession"
                ],
                "Resource": "arn:aws:ecs:*:*:task/*/*"
            },
            {
                "Sid": "CodeStarConnectionsReadWriteAccess",
                "Effect": "Allow",
                "Action": [
                    "codestar-connections:CreateConnection",
                    "codestar-connections:DeleteConnection",
                    "codestar-connections:UpdateConnectionInstallation",
                    "codestar-connections:TagResource",
                    "codestar-connections:UntagResource",
                    "codestar-connections:ListConnections",
                    "codestar-connections:ListInstallationTargets",
                    "codestar-connections:ListTagsForResource",
                    "codestar-connections:GetConnection",
                    "codestar-connections:GetIndividualAccessToken",
                    "codestar-connections:GetInstallationUrl",
                    "codestar-connections:PassConnection",
                    "codestar-connections:StartOAuthHandshake",
                    "codestar-connections:UseConnection"
                ],
                "Resource": "arn:aws:codestar-connections:*:*:connection/*"
            },
            {
                "Sid": "SNSTopicListAccess",
                "Effect": "Allow",
                "Action": [
                    "sns:ListTopics",
                    "sns:GetTopicAttributes"
                ],
                "Resource": "*"
            },
            {
                "Action": [
                    "codepipeline:*",
                    "cloudformation:DescribeStacks",
                    "cloudformation:ListChangeSets",
                    "cloudtrail:DescribeTrails",
                    "codebuild:BatchGetProjects",
                    "codebuild:CreateProject",
                    "codebuild:ListCuratedEnvironmentImages",
                    "codebuild:ListProjects",
                    "codecommit:ListBranches",
                    "codecommit:GetReferences",
                    "codecommit:ListRepositories",
                    "codedeploy:BatchGetDeploymentGroups",
                    "codedeploy:ListApplications",
                    "codedeploy:ListDeploymentGroups",
                    "ec2:DescribeSecurityGroups",
                    "ec2:DescribeSubnets",
                    "ec2:DescribeVpcs",
                    "ecr:DescribeRepositories",
                    "ecr:ListImages",
                    "ecs:ListClusters",
                    "ecs:ListServices",
                    "elasticbeanstalk:DescribeApplications",
                    "elasticbeanstalk:DescribeEnvironments",
                    "iam:ListRoles",
                    "iam:GetRole",
                    "lambda:ListFunctions",
                    "events:ListRules",
                    "events:ListTargetsByRule",
                    "events:DescribeRule",
                    "opsworks:DescribeApps",
                    "opsworks:DescribeLayers",
                    "opsworks:DescribeStacks",
                    "s3:ListAllMyBuckets",
                    "sns:ListTopics",
                    "codestar-notifications:ListNotificationRules",
                    "codestar-notifications:ListTargets",
                    "codestar-notifications:ListTagsforResource",
                    "codestar-notifications:ListEventTypes",
                    "states:ListStateMachines"
                ],
                "Effect": "Allow",
                "Resource": "*"
            },
            {
                "Action": [
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:GetBucketPolicy",
                    "s3:GetBucketVersioning",
                    "s3:GetObjectVersion",
                    "s3:CreateBucket",
                    "s3:PutBucketPolicy"
                ],
                "Effect": "Allow",
                "Resource": "arn:aws:s3::*:codepipeline-*"
            },
            {
                "Action": [
                    "cloudtrail:PutEventSelectors",
                    "cloudtrail:CreateTrail",
                    "cloudtrail:GetEventSelectors",
                    "cloudtrail:StartLogging"
                ],
                "Effect": "Allow",
                "Resource": "arn:aws:cloudtrail:*:*:trail/codepipeline-source-trail"
            },
            {
                "Action": [
                    "iam:PassRole"
                ],
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:iam::*:role/service-role/cwe-role-*"
                ],
                "Condition": {
                    "StringEquals": {
                        "iam:PassedToService": [
                            "events.amazonaws.com"
                        ]
                    }
                }
            },
            {
                "Action": [
                    "iam:PassRole"
                ],
                "Effect": "Allow",
                "Resource": "*",
                "Condition": {
                    "StringEquals": {
                        "iam:PassedToService": [
                            "codepipeline.amazonaws.com"
                        ]
                    }
                }
            },
            {
                "Action": [
                    "events:PutRule",
                    "events:PutTargets",
                    "events:DeleteRule",
                    "events:DisableRule",
                    "events:RemoveTargets"
                ],
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:events:*:*:rule/codepipeline-*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "ds:CreateComputer",
                    "ds:DescribeDirectories",
                    "logs:*",
                    "ssm:*",
                    "ec2messages:*"
                ],
                "Resource": "*"
            }
        ]
    }
    
  5. Switch to the Visual Editor tab and review all granted permissions

  6. Review the policy and click Create policy.

  1. Click on Next
  2. Click on Create user
  3. Click on the user you just created
  4. Click on Security credentials tab
  5. Click on Create access key

Create access key AWS IAM Console

Create an access key for the new user in the AWS IAM console

  1. Click on Download .csv
  2. Save the file to a secure location
danger

You will not be able to access the secret access key again. If you lose it, you will have to create a new access key. Do not share your access key with anyone and keep it safe.

  1. Click on Close

Configure the application

  1. Open the application and click on your chosen cloud provider
  1. Open up the '.csv' file that you just downloaded and look for the 'Access Key ID' and 'Secret Access Key' fields.

AWS Access Key ID and Secret Access Key

The AWS Access Key ID and Secret Access Key in the AWS setup screen

  1. Copy and paste these into the appropriate fields in the corresponding fields.
note

OmicsPipelines does not store or transmit your AWS credentials. They are saved to a file on your local machine in a file at the path ~/.aws/credential* and are only used to access your AWS account. This file is also used by other AWS tools such as the AWS CLI.

  • This is shorthand for C:\Users\username.aws\credentials on Windows, Users/username/.aws/credentials on Mac, and /home/username/.aws/credentials on Linux.

  1. Click 'Save' and you're done!

Change cloud provider accounts

Change cloud providers accounts by clicking on the cloud provider button in the top right corner of the application.

Change Cloud Provider

Click the button in the top right to Change Cloud Provider

Add additional cloud provider accounts

You can add additional cloud providers by clicking on the cloud provider button in the top right corner of the application.

Clicking on the Add new account button will redirect you to the home page, where you can select a new cloud provider.

Add new cloud provider account

Click on the Add new account button to add a new Cloud Provider

You can add multiple cloud providers, and multiple accounts within each provider to OmicsPipelines at the same time.

Remove cloud provider account

Currently active cloud provider accounts

You can log out and remove a currently active cloud provider account by clicking on the Options (⚙️) button in the top right corner of the application.

Remove active cloud provider account

Click the ⚙️ button in the top right to remove the currently active cloud provider account

Other cloud provider accounts

You can remove other provider accounts, as well.

Start by clicking on the cloud provider button in the top right corner of the application.

Right-click on the account you want to remove and select the 🗑️ icon. If you're on a laptop or a Mac without right-click enabled, you can use Ctrl ( on Mac) + Click to right-click.

Remove cloud provider from list

Right click the provider account to bring up the deletion menu

Confirm that you want to remove the account by clicking Delete Credentials.

Confirm deleting a cloud provider account

Confirm (twice!) that you would like to delete a cloud provider's account

Next Steps

Now that you have set up your cloud provider, you can start to learn about OmicsPipelines dashboards. Check out how to view infrastructure section to learn more.