DevOps Console
Cloud Resources Management Console and Other DevOps services toolkit
For Admin
Auth Groups and Their Access Levels
devops-console-users
Console_Read (View access to all required models)
devops-console-reviewers
Console_Read + Action, Task Models Create/Update Access
codecommit-admins
Console_Read + CodeCommit Related Models Create/Update/Delete Access
codecommit-managers
Console_Read + CodeCommit Related Models Create/Update Access on which user has a manager membership, and can create a Repository
codebuild-admins
Console_Read + CodeBuild Related Models Create/Update/Delete Access
codebuild-managers
Console_Read + CodeBuild Related Models Create/Update Access on which user has a manager membership, and can create a Project
environment-setup-admins
Console_Read + Environment Setup Models Create/Update/Delete Access
environment-setup-managers
Console_Read + Environment Setup Related Models Create/Update Access
s3-managers
Console_Read + S3 Related Models Create/Update Access
Create Reviewers
Reviewers are the users who approve the actions in the DevOps Console, to create a reviewer follow the below steps.
Create Auth User
Create user in
USERS & GROUPS
->Users
ModelAdd staff status for the user (tick checkbox)
Add user to the
devops-console-reviewers
group
Create Reviewer
Create a reviewer in
REVIEWER
->Reviewers
ModelChoose
Associated Login User
(the user we've created in the above step), andAssociated IAM User
Choose
Accounts allowed
(Accounts for which the user is Reviewer)Choose All models in
Allowed Models to Approve
Set
Auth code
: This code should be used by the reviewer for actions approval
Allocate Credentials
We can allocate credentials for a reviewer in
AWS ACCOUNT
->AWS Credentials
Select Credentials Object associated with Console Admin
Choose
Allocation of creds to Selected Reviewer
Action, and click on goChoose reviewer object to allocate credentials
Enter Admin Auth Code
Approve Action The above steps will generate credentials required for approving the actions for the reviewer (for a specific AWS account)
Reset/Update Reviewer Auth Code
Reviewer can update auth code by selecting the Reviewer Obj in
REVIEWER
->Reviewers
and by choosing theUpdate Auth Code
actionOnly the Admin can reset the reviewer auth code, by selecting the Reviewer Obj in
REVIEWER
->Reviewers
and Choosing theReset Auth Code
action
AWS Account Config
Every AWS account object has an account level configuration specified in the config
field similar to the below:
developer_group_name
: A Common IAM Group with the minimum required permissions for all Developers. (Default:developer-1
)code_build_trigger_lambda_func_arn
: Lambda Function for Codebuild trigger, when you configure a codebuild project for a specific branch in a repo, this function will be triggered on changes to the branch.code_artifact_domain_name
: Domain name of codeartifact from which pip or npm packages will be installed, read access permission for this domain will be added to the developers' group, so that users can install packages with their credentials.code_artifact_pypi_packages_repo_name
: Repo name for pypi packages (default:pypi
), this will be used while generating Common developer perms and codebuild project permscode_artifact_npm_packages_repo_name
: Repo name for npm packages (default:npm
), this will be used while generating Common developer perms and codebuild project perms
Scripts to Sync Updates in AWS -> DB
Model:
OTHERS > Scripts
To make the resources to be in sync we will use the below scripts to check for any changes in AWS, and apply them in DB, the resource will be created if doesn't exists in DB, or updated if already exists, and mark as DELETED_IN_AWS
if deleted in AWS
SYNC_IAM_USERS_TO_DB
:SYNC_CODECOMMIT_REPOS_TO_DB
SYNC_S3_BUCKETS_TO_DB
SYNC_CODEBUILD_PROJECTS_TO_DB
SYNC_CF_DISTRIBUTIONS_TO_DB
SYNC_SSM_PARAMETERS_TO_DB
For Users
AWS Console
AWS Console has various AWS Commonly used Services.
Code Commit
In this Section all the things related to Codecommit Repo will be there, with this you can perform the below things:
Create/Update Repo
Add/Remove Contributors
Restrict Users to make changes to specific Branches only
Restrict Users to make changes to repo from specific IPAddress
Memberships
Model:
CodeCommit Repo Memberships
With Memberships you can allow the user to access the repo, we can assign various access levels for the user, which are mentioned below:
READ: Read Access for Specified Repo.
WRITE: Read, Write Access For Specified Repo (for all branches except branches specified in
GlobalRestrictedBranches
,RepoSpecificRestrictedBranches
,RepoUserRestrictedBranches
). To allow the user to make changes in a branch irrespective of*-RestrictedBranches
then you can create theRepoUserWhitelistedBranches
for the user.CO_MANAGER_WITH_IP_RESTRICTIONS:
Full Access to Specified Repo But only accessible in Allowed IP addresses, we can customize Allowed IP addresses in
GlobalIPAddressWhitelist
,RepoSpecificIPAddressWhitelist
, andRepoUserIPAddressWhitelist
.
CO_MANAGER:
Full Access to Specified Repo (Unlike Maintainer for co-manager perms will be managed in AWS IAM Policies).
MAINTAINER:
Full Access to Specified Repo. (Perms will be managed in codecommit resource tags)
IPAddress/Branch Restrictions
The below restrictions are applied only if the user has a membership in the repo
GlobalIPAddressWhitelist: IP addresses in which Code Commit Resources can be accessed by any developer.
GlobalRestrictedBranches: Branches for which access is restricted by default on all repos.
RepoSpecificIPAddressWhitelist: Repo Level Additional IP addresses Allowed.
RepoSpecificRestrictedBranches: Repo Level Additional Restricted Branches.
RepoUserRestrictedBranches: Repo-Level Additional Restricted Branches for a specific user.
RepoUserWhitelistedBranches: Repo-Level Whitelisted Branches for specific Users.
RepoUserIPAddressWhitelist: Repo-Level Whitelisted IP addresses for specific Users.
Actions Approval:
The user must have one of MAINTAINER
, CO_MANAGER
, or CO_MANAGER_WITH_IP_RESTRICTIONS
membership in the respective repo.
Note: User can only approve memberships with access_levels less than or equal to their access_level (above levels are in Ascending order), for example, CO_MANAGER can't approve MANAGER access level membership.
S3
In this Section all the things related to S3 Bucket will be there, with this you can perform the below things:
Create/Update S3 Bucket
Create/Update S3 Memberships
Memberships
You can create s3 memberships for a specific object path with access levels below (you can select multiple).
Full access: Full Access to the S3 Bucket Objects (Read, write, and delete objects)
List access: List Access to the S3 Bucket Objects
Read access: Read Access to the S3 Bucket Objects
Write access: Write Access to the S3 Bucket Objects
Delete access: Delete Access to the S3 Bucket Objects
Actions Approval:
Any member of s3-managers
can approve the actions
AWS IAM Users
In this Section all the things related to IAM will be there, with this you can perform the below things:
Create/Update User
Developers
While creating or updating a user, check the Is developer
field if a user is a developer so that required permissions will be attached to the user.
Regenerate Codecommit policy
You can regenerate Codecommit policies By navigating to the IAM Users -> select user -> Choose Regenerate Codecommit perms
Reset Password
You can reset iam user password By navigating to the IAM Users -> Select user -> Choose Reset User password
Code Build
In this Section all the things related to the Codebuild project will be there, with this you can perform the below things:
Create/Update Project
Start Builds
Create/Update Memberships
Memberships
BUILD_STATUS: Can View the Build status of the specified Build.
BUILD_LOGS: Can View Build status, and Build logs of the specified Build.
MANAGE: Full Access to the specified project except for the
Delete Project
action.
Actions Approval:
The user must have a MANAGE
membership in the codebuild project.
Other Codebuild features
Custom Docker Image:
If you're using a Custom Base image for your codebuild project, check the custom_docker_image
field at the Codebuild project, so that the required permissions for the Codebuild project will be attached to the project service Role.
Environment Variables:
You can provide environment variables in two ways, either plaintext or parameter store values.
For Plain Text values, the syntax will be like below:
For Parameter Store values, you can provide a parameter store object path or you can provide a value, but not both
Providing name and value
If you provide a value like the above, we'll create a parameter store object with a path /Codebuild/<PROJECT_NAME>/CUSTOM_AWS_SECRET_ACCESS_KEY
and value as the given value
Providing the name and path
If you provide a value like the above, we'll set the environment variable directly, with a given name, and the value will be given the path
Publishing Packages
If you're publishing a package using the Codebuild project, you need to fill in the Code Artifact Packages
section, so that required permissions will be generated for the codebuild project service Role.
Codeartifact domain: Domain on which you will be publishing the package, (for the nxtwave account, the domain is nxtwave)
Codeartifact repo: Codeartifact Repo on which you will be publishing your package, generally for node packages repo is npm, for python packages repo is pypi
Codeartifact package: Your package name (remove namespace if exists), if your package name is @nw/api-constants, fill api-constants
Reset Service Role
You can reset/regenerate the codebuild project service role, select codebuild project and choose the Reset project default Role Policy
action to reset.
CloudFront
In this Section all the things related to Cloudfront will be there, with this you can perform the below things:
Invalidate Cloudfront distribution cache
CloudWatch
In this Section all the things related to Cloudwatch will be there, with this you can perform the below things:
Create/Update Cloudwatch Log Memberships
Memberships
READ: Can view, search, and filter logs of the specified log group.
RDS
In this Section all the things related to RDS will be there, with this you can perform the below things:
Create Database in RDS Instance (VPC Configured).
Create VPC Obj, which contains the config as below:
lambda_function_for_rds_operations
is the lambda_function that is deployed in the VPC, which we'll use for rds operations.
Create an
RDS Instance
Object with a respective identifier, host_endpoint, port, etc.,Create
RDS Credentials
for the above instance added (password will be encrypted with user auth_code before saving)Then Create an
RDS Database
Object by selecting the appropriate VPC, RDS Instance, and Credentials to use.
Environment Setup
In this Section all the things related to Environment Setup will be there, with this you can perform the below things:
Create S3WebFrontend
S3WebFrontend
With this, the following things can be done:
Create S3 Bucket
Make Bucket Static website
Create Cloudfront Distribution for this Website
Create route53 record with Cloudfront distribution endpoint
Create Web Deploy User
Miscellaneous
Actions
In DevOps Console, for every operation the action will be created, which should be approved by an authorized reviewer to apply changes.
You've two choices here:
Approve Action: Approve the action by entering the auth code
Reject Action: Reject the action (can't undo action once rejected)
Tasks
For every approved action one task will be created, you can check the status of the action in this task.
If Task failed because of any reason, you can retry it again, by clicking the Retry button on the task Page, or by selecting the task and choosing the Retry Task
action.
Issues
Scripts to Sync Updates in AWS -> DB
SYNC_CODECOMMIT_REPOS_TO_DB
:While syncing the changes in AWS to DB, we might get a Thottling error while fetching the current maintainer of the Codecommit Repo, in this case, we're skipping the maintainer check, instead adding a log regarding this.
Last updated