SlideShare a Scribd company logo
1 of 68
2015 #ChefConf Workshop
Building a Self-Documenting Compliant Application
www.conjur.net | @conjurinc
© Confidential
Set-up Prerequisites
1.Sign up for the Conjur demo appliance
http://info.conjur.net/secrets-management-demo
2. Login to the demo appliance
If you’re on Windows, use Putty
http://bit.ly/1NAHh3Y
Ready To Deep Dive?
© Confidential
Welcome!
I. Agenda
II. Workshop Goals
III.Meet Your Workshop Hosts, Conjur Introduction
IV.Ready To Deep Dive? Set-up Conjur Prerequisites
● Part I: Introduction to DevOps and Compliance / Q&A
● Part II: Chef Secrets Management Overview / Q&A
Agenda
© Confidential
- Break -
● Part III: Practicum - Build a Sample App
● Part IV: Compliance & Chef; Good Practice / Q&A
● Part V: Traceability, Auditability and Chef / Q&A
V. Wrap up
Agenda
© Confidential
Workshop Goals
After this workshop, you will:
● Have a deeper understanding of how compliance with
Chef, access to the Chef Server, and Secrets
Management are interrelated.
● Know how to implement a delivery pipeline that
combines the two topics in a self-documenting and
highly automated fashion.
© Confidential
Your Workshop Hosts
● Kevin Gilpin, CTO and Co-Founder, Conjur - Kevin has 19 years of technical
leadership in enterprise software, delivering solutions to the Fortune 500. He has held technical
positions at Infinity Pharmaceuticals, Praxeon Inc, i2 Technologies, and Trilogy, where he developed
technology that delivered pioneering interactivity on the web and has ultimately been adopted across
the industry. @kegilpin
● Elizabeth Lawler, CEO & Co-Founder, Conjur - Elizabeth Lawler is CEO and Co-
founder of Conjur, Inc. Elizabeth has over 20 years of experience working in highly regulated and
sensitive data environments. Prior to founding Conjur, Elizabeth was Chief Data Officer of Generation
Health and held a leadership position in research at the Department of Veterans Affairs. She has
been a programmer herself and is constantly working to make software development and IT systems
easier to manage for people working in regulated industries. @elizabethlawler
© Confidential
Your Workshop Hosts
● Dustin Collins, Developer Advocate, Conjur - Dustin is a polyglot engineer and
Conjur's developer advocate. He organizes the Boston DevOps meetup and is most interested in how
we as a community can iterate on our processes and tools to enable continuous delivery of quality
software. @dustinmm80
● Christopher Farnham, Novartis - Chris is a proven software development and operations
team leader within diverse domains, including banking, publishing, military and biotechnology. He has
demonstrated deep and broad knowledge of SDLC processes within highly regulated, demanding (but
ultimately person driven) environments. @chrisfarnham
© Confidential
Conjur Introduction
We believe that security success for all organizations
is determined at the business and infrastructure levels
● Conjur is a privileged access security platform for large and fast-
growing cloud and web-based enterprises using next generation
technologies.
● It provides a smarter, transparent, automated way to scale and
manage critical secrets and access control. It’s used on-premise or
in your cloud (private, public, hybrid).
© Confidential
Conjur Introduction
Application Auth
Systems Access
Internal Network
Physical Infrastructure
Firewall
Control Plane
We provide the modern access
management and audit solution
for the missing pieces: Systems
Admin and the Systems Control
Plane.
Conjur Resolves The
Access Control Gap
© Confidential
Conjur Introduction
● Conjur solves three critical infrastructure security growth
issues:
> Secrets Management
> Access Control (SSH) (e.g., machines, robots,
humans)
> Audit (Compliance)
● Integration-Friendly! We work with all technology stacks.
© Confidential
Conjur Clients
© Confidential
Part I.
Introduction to DevOps and Compliance
Compliance for People who Cringe at “Compliance”
© Confidential
How the Business Views DevOps
How does DevOps
work?
Magic.
© Confidential
Compliance and DevOps
Source: DevOps: The Worst-Kept Secret to Winning in the Application Economy CA Technologies
October 2014 cite: http://rewrite.ca.com/us/~/media/rewrite/pdfs/white-papers/devops-winning-in-
application-economy.pdf
© Confidential
Goal: Reproducible, Reliable Processes
● Same packages
● Same configuration
… and…
● Same security and
compliance controls
© Confidential
● Automated and traceable authorizations for promotion of code to
production
● Role-based access controls that acknowledge when DevOps personnel
have access to production systems and document the specific use cases
● Encryption and logical access controls which essentially “lock-out”
unauthorized access (to systems or data)
Adapted From Brightline https://www.brightline.com/2012/12/auditing-devops-developers-with-
access-to-production/)
Auditors/Compliance want to see
© Confidential
● File integrity monitoring (and alerting) on changes to production code
versus the traditional focus on critical operating system executable
● File access monitoring on the source code itself with appropriate alerting
● Extensive logging and daily, if not real-time, log review of the above data
sources
Adapted From Brightline https://www.brightline.com/2012/12/auditing-devops-developers-with-
access-to-production/)
Auditors/Compliance want to see
© Confidential
● Single source for all change requests
○ No change is deployed without a request
○ Intent is that most problems can be diagnosed via the change reporting systems
● Clear separation of roles between developer and deployer
○ Or at least developer cannot deploy without review
● Clear metrics to demonstrate improvement
○ Mean Time To Recovery
○ Percentage of failed deployments/changes
Goals for delivery automation
© Confidential
Dev, Test, & Prod
Environments
Code Review
Infrastructure
Source Code
Goal automate documentation of this
Infrastructure
Code Developer
deploy
Continuous
Build & Unit
Test
Config, Release,
Deployment
commit on branch build
check
approval
tests pass
© Confidential
Part II
Chef and Access Management
© Confidential
● Access control is determined by “gates” which can be opened and closed
by human or automated processes
● SSH gates access to production machines by developers and code
● Secrets gate access to production services by developers and code
○ Access to a secret constitutes access to a production service
The Importance of SSH and Secrets
© Confidential
State of Chef + SSH
Combining users + sudo cookbook is a popular solution.
Workflow
● Create a data bag for your users and place it in a my_users
cookbook
● Create JSON entries for each user w/ group membership
and public SSH keys
● Upload the data bag and cookbook to Chef server
Include the sudo recipe in my_users cookbook to set
passwordless sudo for your users
© Confidential
State of Chef + Secrets
chef-vault + IAM is a popular solution
workflow
● Create IAM JSON file defining access permissions to
S3 buckets
● Script out creating IAM users/groups/policies for
specific access to a set of secrets
● create a vault and encrypt the JSON output of the
previous step, tied to a specific Chef query
© Confidential
State of Chef + Audit
Chef Analytics
● Tracks changes to Chef objects (clients, nodes, etc)
and who made them in real-time
● You write controls into your recipes, compliance tests
that report back to analytics after Chef run
Guardrail
● SAAS that tracks changes to infrastructure in real-time,
can trigger alerts on specific changes
© Confidential
We will create a simple, but real infrastructure using Chef, Conjur, and
Docker. Infrastructure activity and access will be fully managed and
audited.
Workshop Flow - Overview
Chef Chef Server is the definitive source of server configuration.
Chef deploy and validation keys provide access to Chef Server.
Chef provides audit and verification of server installs.
Conjur Provides User, Group, and Host identity.
Stores and distributes secrets.
Manages SSH access to machines.
Records audit of all permission changes, access to secrets, and access to
hosts, plus custom audit records of cookbook pushes.
Docker Used to run infrastructure machines:
deploy can push cookbooks to Chef Server. Accessible only to ops.
sentry application server. Accessible to ops and developers.
© Confidential
◁ Move to the source directory and fetch all the code
Workshop Flow - Get the Code
cd chefconf15
git submodule update --init --recursive
Submodule 'cookbooks/foundation' (https://github.com/conjurdemos/chefconf15-
base.git) registered for path 'cookbooks/foundation'
Submodule 'cookbooks/sentry' (https://github.com/conjurdemos/chef-sentry)
registered for path 'cookbooks/sentry'
…
© Confidential
◁ Create an ops group to own the key
◁ You’re a member of security_admin, so you’re also a member of ops.
group
conjur group create --as-group security_admin ops
{
"id": "ops",
"ownerid": "demo:group:security_admin",
"gidnumber": null,
"roleid": "demo:group:ops",
"resource_identifier": "demo:group:ops"
}
© Confidential
◁ Store the public key of the ‘demo’ user (that’s you) in Conjur.
Workshop Flow - Load your Public Key
conjur pubkeys add demo @~/.ssh/id_rsa.pub
Public key 'demo@ip-10-97-161-35' added
© Confidential
© Confidential
◁ Copy deploy.pem and validation.pem from your Chef
Server
◁ Save to the local files : deploy.pem and validation.pem
◁ deploy.pem has permission to manage cookbooks
◁ validation.pem used to register new machines with
Chef
Workshop Flow - Download the Chef Keys
© Confidential
Workshop Flow - Store the Chef deploy.pem
conjur variable create --as-group ops -m application/x-pem-file 
chef-server/deploy/private_key
cat deploy.pem | conjur variable values add chef-server/deploy/private_key
{
"id": "chef-server/deploy/private_key",
"mime_type": "application/x-pem-file",
"kind": "secret",
"version_count": 0
}
Value added
◁ Create the variable and store the key
© Confidential
◁ Store the Chef server validation key in Conjur
Workshop Flow - Store the Chef validation.pem
conjur variable create --as-group ops -m application/x-pem-file 
chef-server/validation/private_key
{
"id": "chef-server/validation/private_key",
"mime_type": "application/x-pem-file",
"kind": "secret",
"version_count": 0
}
cat validation.pem | conjur variable values add chef-server/validation/private_key
Value added
© Confidential
© Confidential
◁ Foundation image cookbook is pre-loaded into the Chef server. Along with
Conjur auth and RBAC, this is the foundation of trust in the infrastructure.
⊃ Base OS.
⊃ Packages - Chef, Conjur
⊃ SSH access - Conjur SSH - login with your own private key, always
⊃ /etc/conjur.conf + /etc/conjur-demo.pem - Verified TLS for everything
⊃ Only public info! No secrets.
https://github.com/conjurdemos/chefconf15-base
Workshop Flow - Foundation Image
© Confidential
“Deploy” server builds on the foundation image
◁ .conjurenv → Chef validation.pem
◁ client.rb → Chef client configuration
◁ deploy.sh → Docker entrypoint, uploads all cookbooks to Chef server.
Cookbooks should be volume-mounted to Docker
Workshop Flow - Build Deploy Server
docker build -t deploy deploy/
© Confidential
Workshop Flow - Create Deploy Host
conjur host create --as-group ops deploy-01 | tee deploy-01.json
◁ Conjur - Create a Host identity for the Deploy server
◁ Assign ownership to the ops group
cat << ENV > deploy-01.env
CONJUR_AUTHN_LOGIN=host/deploy-01
CONJUR_AUTHN_API_KEY=$(cat deploy-01.json | jsonfield api_key)
ENV
© Confidential
◁ Launch the deploy host
◁ Host does not have access to the secret … yet
Workshop Flow - Test the Deploy Host
docker run --env-file deploy-01.env --entrypoint conjur deploy env check
error: Some variables are not available
CLIENT_PEM: unavailable
© Confidential
◁ Give access to the Chef key to the deploy host
Workshop Flow - Grant Access to Chef
conjur resource permit variable:chef-server/deploy/private_key 
host:deploy-01 
execute
Permission granted
© Confidential
◁ Run the deploy box as a daemon. We will use SSH to access it.
Workshop Flow - Launch the deploy box
docker run -d --env-file deploy-01.env 
--name deploy 
-v $PWD/cookbooks/:/cookbooks 
-p 2200:22 
deploy
*** Running /etc/my_init.d/10_foundation-configure.sh...
[2015-03-28T20:56:58+00:00] INFO: Forking chef instance to converge...
[2015-03-28T20:56:58+00:00] INFO: *** Chef 12.0.3 ***
…
*** Runit started as PID 336
Mar 28 20:57:09 613420620e92 syslog-ng[345]: syslog-ng starting up;
version='3.5.3'
docker logs -f deploy
© Confidential
© Confidential
◁ Login to the deploy host
◁ On the deploy host, display user info. Group membership is controlled by
Conjur.
Workshop Flow - Login to the deploy host
ssh -p 2200 localhost
demo@e9de200cc9da:~$
id
uid=1100(demo) gid=50000(conjurers) groups=50000(conjurers)
This icon means, run this command from inside a container
© Confidential
◁ Use the deploy host to list cookbooks
◁ Group ‘conjurers’ is whitelisted to passwordless-sudo this command.
Workshop Flow - List Cookbooks
sudo list-all
apt 2.7.0
build-essential 2.2.1
conjur-client 0.3.1
foundation 0.1.1
sshd-service 1.1.0
terminal-login 0.2.3
yum 3.5.3
© Confidential
◁ Exit the container with Control-D and navigate to the cookbooks directory
◁ Rename the sentry folder to end with your initials
Workshop Flow - Build the sentry Cookbook
cd cookbooks
mv sentry sentry-yourname ← changeme!
cd sentry-yourname
© Confidential
Edit metadata.rb
◁ Change the cookbook name to end
with your initials
◁ Increment the version to 0.2.0
Workshop Flow - Build the sentry Cookbook
© Confidential
◁ Edit recipes/default.rb
Workshop Flow - Build the sentry Cookbook
© Confidential
◁ Login to the deploy host
Workshop Flow - Login to the deploy host
ssh -p 2200 localhost
demo@e9de200cc9da:~$
© Confidential
◁ This sequence will vendor the Berksfile in /cookbooks/sentry, then upload
the cookbook with dependencies.
Workshop Flow - Upload Cookbooks
sudo upload sentry-yourname
# ./upload-all /cookbooks/sentry/
Resolving cookbook dependencies...
Fetching 'sentry-keg' from source at .
Using build-essential (2.2.2)
Using python (1.4.6)
Using yum (3.5.3)
Using sentry-keg (0.1.6) from source at .
Using yum-epel (0.6.0)
Vendoring build-essential (2.2.2) to /cookbooks/sentry//.vendor/build-essential
Vendoring python (1.4.6) to /cookbooks/sentry//.vendor/python
Vendoring sentry-keg (0.1.6) to /cookbooks/sentry//.vendor/sentry-keg
Vendoring yum (3.5.3) to /cookbooks/sentry//.vendor/yum
Vendoring yum-epel (0.6.0) to /cookbooks/sentry//.vendor/yum-epel
Uploading sentry-keg [0.1.6]
Uploaded all cookbooks.
© Confidential
◁ Audit activity shows access to secrets, as well as the upload event
Workshop Flow - Inspect the audit
conjur audit all -s
[2015-03-30 18:28:25 UTC] demo:host:deploy-01 checked that they can execute
demo:variable:chef-server/deploy/private_key (true)
[2015-03-30 18:28:30 UTC] demo:host:deploy-01 created resource demo:chef-cookbook:foundation
owned by demo:host:deploy-01
[2015-03-30 18:28:31 UTC] demo:host:deploy-01 reported cookbook-deploy:upload; message:
Uploaded cookbook 'foundation' with command options: --include-dependencies
© Confidential
◁ Run a MySQL server
◁ Display the connection info
Workshop Flow - Launch database server
cd ~/chefconf15/database
source start.sh
Launching database
Database launched! Check $DB_HOST and $DB_PASSWORD
echo $DB_PASSWORD
eee5377d52c6b033
© Confidential
◁ Store the DB password in Conjur
Workshop Flow - Store the database password
conjur variable create --as-group ops 
sentry/mysql/password 
$DB_PASSWORD
{
"id": "sentry/mysql/password",
"mime_type": "text/plain",
"kind": "secret",
"version_count": 1
}
© Confidential
◁ Return to $HOME/chefconf15
Workshop Flow - Chdir
cd ~/chefconf15
© Confidential
◁ Create the host
◁ Permit secrets access
Workshop Flow - Configure Sentry host
conjur host create --as-group ops sentry-01 | tee sentry-01.json
cat << ENV > sentry-01.env
CONJUR_AUTHN_LOGIN=host/sentry-01
CONJUR_AUTHN_API_KEY=$(cat sentry-01.json | jsonfield api_key)
ENV
conjur resource permit variable:chef-server/validation/private_key 
host:sentry-01 
execute
conjur resource permit variable:sentry/mysql/password 
host:sentry-01 
execute
© Confidential
◁ Build the image
Workshop Flow - Build Sentry app
docker build -t sentry sentry/
© Confidential
◁ Run the Sentry box as a daemon.
Workshop Flow - Run Sentry
docker run -d --env-file sentry-01.env 
--name sentry 
-e DB_HOST=$DB_HOST 
-e COOKBOOK_NAME=sentry-keg 
-p 2201:22 
-p 8080:9000 
sentry
*** Running /etc/my_init.d/10_foundation-configure.sh...
[2015-03-28T20:56:58+00:00] INFO: Forking chef instance to converge...
[2015-03-28T20:56:58+00:00] INFO: *** Chef 12.0.3 ***
…
*** Runit started as PID 336
Mar 28 20:57:09 613420620e92 syslog-ng[345]: syslog-ng starting up;
version='3.5.3'
docker logs -f sentry
Change this to match your cookbook name
© Confidential
◁ Login to the sentry box
◁ On the sentry box, run chef-client
Workshop Flow - Configure sentry
ssh -p 2201 localhost
… chef-client run happens here
$ sudo conjur env run -c /.conjurenv -- sudo -E chef-client 
-c /etc/chef/client.rb 
-o $COOKBOOK_NAME
© Confidential
◁ You can now view the Sentry UI on port 8080 of your endpoint.
Workshop Flow - View Sentry UI
© Confidential
● Create a developers group and a user.
● Try to deploy, as this user.
Workshop Flow - Add New Team Members
© Confidential
Part IV
Regulatory Environments and
Chef Server
Presented by Chris Farnham, Novartis
@chrisfarnham
© Confidential
DevOps Mission
Development Operations strives to shorten
and amplify feedback loops, thereby bringing
software development and IT operations
closer to end users.
© Confidential
Macro Trends
● Self-service
● Virtualization
● Automation
● Manage sets of assets not individual assets
● External collaborations
● Data Explosion
● Globalizaton
● Mobile devices
● Internet of Things
© Confidential
In order for Chef to manage system configurations in our regulated
environment it needed to be regulated itself. This is daunting; the following
high-level strategy really helped me deliver
First: Describe the system and list all activities
Second: Go through each activity and ask:
◁ Can I declare this activity out of scope?
◁ Can I reuse (or map it to) a pre-existing policy or activity?
◁ Can I leverage automation (in lieu of documentation)?
◁ Document the activity at an appropriate level
The above is generally ordered best to worst (but ultimately not that bad)
Chef in a regulated environment
© Confidential
◁ Gather product documentation
◁ List all components and integrations to the system
◁ List all activities with the system with careful attention to status updates
◁ Describe and list the roles and responsibilities associated with the system
Example activities:
◁ Create/Modify/Update Cookbooks in Chef Server
◁ Bootstrap (add)/Remove Node
Protip: Declare a “maintenance” activity with a change tracking process of
“none” ; because nothing changes when this activity occurs
System activities
© Confidential
Always look to manage scope and be aware of which integrated systems are
particularly sensitive (read: important) and which integrated systems are
managed by other groups
◁ Declare which products and systems are “in scope”
◁ Explicitly declare what is “out of scope”
Examples:
◁ Repository development activities (e.g., Berkshelf, cookbook writing) were
declared “out of scope”
◁ Repository changes (e.g., upload, remove) were declared “in-scope”
◁ Supporting infrastructure (e.g., monitoring, Jenkins) was declared “out of
scope”
Managing scope
© Confidential
Documentation and processes already existed for many things, we just
reused them.
Examples:
◁ Server provisioning and retirement ← On-premise
◁ Incident management (we just needed to declare roles and list points of
contact)
◁ Backup and recovery
Reusing existing activities
© Confidential
Leveraging automation
Automated processes, where everything happens in a traceable and
auditable manner (driven out of assets managed in source control) provide
great flexibility and insulation within the change control process.
Example doc excerpt: “change tickets must be filed for all medium risk
updates unless performed via source control driven automation.”
© Confidential
Figuring out what should be documented at a high-level and what should be
detailed is an art but important
Control related documentation is usually tracked and signed (a rigorous
process). Do yourself a favor and only put core, less frequently changed
information within the core doc (the operations manual). Then make heavy
use of referenced “working instructions” that can be updated without going
through a heavy process
Documenting activities
© Confidential
◁ Really get to know the compliance group
⊃ Ask to attend meetings, request 1 on 1s, have lunch with them
⊃ Goal is to learn their language, concerns and establish a personal relationship
◁ Learn the groups, communication paths, workflows and activities within
the organization
⊃ How are change management decisions made?
⊃ Who are the operational and compliance stakeholders?
Homework
© Confidential
We hope you learned A LOT today!
Next Steps...
> Test drive our on-demand demo at conjur.net
> Check out our dev docs at developer.conjur.net
> Set up a live 1:1 demo to learn more
> Subscribe to our blog & monthly newsletter
> Follow us @conjurinc
Thank You!

More Related Content

What's hot

Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Oracle Code One ...
Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Oracle Code One ...Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Oracle Code One ...
Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Oracle Code One ...Jorge Hidalgo
 
GitHub Gone Wrong - Lessons learned from organic open source
GitHub Gone Wrong - Lessons learned from organic open sourceGitHub Gone Wrong - Lessons learned from organic open source
GitHub Gone Wrong - Lessons learned from organic open sourceAll Things Open
 
CIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsCIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsEdwin Rojas
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationAlex Vranceanu
 
DevOps Service | Mindtree
DevOps Service | MindtreeDevOps Service | Mindtree
DevOps Service | MindtreeAnikeyRoy
 
Building security into the pipelines
Building security into the pipelinesBuilding security into the pipelines
Building security into the pipelinesVandana Verma
 
DevOps & DevSecOps in Swiss Banking
DevOps & DevSecOps in Swiss BankingDevOps & DevSecOps in Swiss Banking
DevOps & DevSecOps in Swiss BankingAarno Aukia
 
DevOps and Continuous Delivery Reference Architectures - Volume 2
DevOps and Continuous Delivery Reference Architectures - Volume 2DevOps and Continuous Delivery Reference Architectures - Volume 2
DevOps and Continuous Delivery Reference Architectures - Volume 2Sonatype
 
Essentials of Open Source Documentation
Essentials of Open Source DocumentationEssentials of Open Source Documentation
Essentials of Open Source DocumentationMoi Borah
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...Docker, Inc.
 
How to Get Started with DevSecOps
How to Get Started with DevSecOpsHow to Get Started with DevSecOps
How to Get Started with DevSecOpsCYBRIC
 
Thinking about Jenkins Security
Thinking about Jenkins SecurityThinking about Jenkins Security
Thinking about Jenkins SecurityMark Waite
 
Microsoft DevOps Forum 2021 – DevOps & Security
 Microsoft DevOps Forum 2021 – DevOps & Security Microsoft DevOps Forum 2021 – DevOps & Security
Microsoft DevOps Forum 2021 – DevOps & SecurityNico Meisenzahl
 
DevSecOps for the DoD
DevSecOps for the DoDDevSecOps for the DoD
DevSecOps for the DoDJamesHarmison
 
Building a DevSecOps Pipeline Around Your Spring Boot Application
Building a DevSecOps Pipeline Around Your Spring Boot ApplicationBuilding a DevSecOps Pipeline Around Your Spring Boot Application
Building a DevSecOps Pipeline Around Your Spring Boot ApplicationVMware Tanzu
 
DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...
DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...
DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...Mohamed Nizzad
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CloudBees
 
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar NikaleAgile Testing Alliance
 
Top devops solution providers
Top devops solution providersTop devops solution providers
Top devops solution providersayush gupta
 

What's hot (20)

Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Oracle Code One ...
Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Oracle Code One ...Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Oracle Code One ...
Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Oracle Code One ...
 
GitHub Gone Wrong - Lessons learned from organic open source
GitHub Gone Wrong - Lessons learned from organic open sourceGitHub Gone Wrong - Lessons learned from organic open source
GitHub Gone Wrong - Lessons learned from organic open source
 
CIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsCIP Developing Curator Tool Wizards
CIP Developing Curator Tool Wizards
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
 
DevOps Service | Mindtree
DevOps Service | MindtreeDevOps Service | Mindtree
DevOps Service | Mindtree
 
Building security into the pipelines
Building security into the pipelinesBuilding security into the pipelines
Building security into the pipelines
 
DevOps & DevSecOps in Swiss Banking
DevOps & DevSecOps in Swiss BankingDevOps & DevSecOps in Swiss Banking
DevOps & DevSecOps in Swiss Banking
 
DevOps and Continuous Delivery Reference Architectures - Volume 2
DevOps and Continuous Delivery Reference Architectures - Volume 2DevOps and Continuous Delivery Reference Architectures - Volume 2
DevOps and Continuous Delivery Reference Architectures - Volume 2
 
Essentials of Open Source Documentation
Essentials of Open Source DocumentationEssentials of Open Source Documentation
Essentials of Open Source Documentation
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
 
How to Get Started with DevSecOps
How to Get Started with DevSecOpsHow to Get Started with DevSecOps
How to Get Started with DevSecOps
 
Thinking about Jenkins Security
Thinking about Jenkins SecurityThinking about Jenkins Security
Thinking about Jenkins Security
 
Microsoft DevOps Forum 2021 – DevOps & Security
 Microsoft DevOps Forum 2021 – DevOps & Security Microsoft DevOps Forum 2021 – DevOps & Security
Microsoft DevOps Forum 2021 – DevOps & Security
 
DevSecOps for the DoD
DevSecOps for the DoDDevSecOps for the DoD
DevSecOps for the DoD
 
Talk DevSecOps to me
Talk DevSecOps to meTalk DevSecOps to me
Talk DevSecOps to me
 
Building a DevSecOps Pipeline Around Your Spring Boot Application
Building a DevSecOps Pipeline Around Your Spring Boot ApplicationBuilding a DevSecOps Pipeline Around Your Spring Boot Application
Building a DevSecOps Pipeline Around Your Spring Boot Application
 
DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...
DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...
DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
 
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale
 
Top devops solution providers
Top devops solution providersTop devops solution providers
Top devops solution providers
 

Viewers also liked

CI - A Refactor Story - Boston DevOps Meetup March 2015
CI - A Refactor Story - Boston DevOps Meetup March 2015CI - A Refactor Story - Boston DevOps Meetup March 2015
CI - A Refactor Story - Boston DevOps Meetup March 2015Kevin Gilpin
 
Using Puppet With A Secrets Server
Using Puppet With A Secrets ServerUsing Puppet With A Secrets Server
Using Puppet With A Secrets Serverconjur_inc
 
Q Con New York 2015 Presentation - Conjur
Q Con New York 2015 Presentation - ConjurQ Con New York 2015 Presentation - Conjur
Q Con New York 2015 Presentation - Conjurconjur_inc
 
Rsac15 exhibit target plan 3 20
Rsac15 exhibit target plan 3 20Rsac15 exhibit target plan 3 20
Rsac15 exhibit target plan 3 20conjur_inc
 
Security For Humans
Security For HumansSecurity For Humans
Security For Humansconjur_inc
 
система превентивного виховання
система превентивного вихованнясистема превентивного виховання
система превентивного вихованняlarisa12artyr
 
Zero trust server management - lightning
Zero trust server management - lightningZero trust server management - lightning
Zero trust server management - lightningKevin Gilpin
 
The 5 Stages of Secrets Management Grief, And How to Prevail
The 5 Stages of Secrets Management Grief, And How to Prevail The 5 Stages of Secrets Management Grief, And How to Prevail
The 5 Stages of Secrets Management Grief, And How to Prevail Bryan Sterling
 
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...DynamicInfraDays
 
SecDevOps 2.0 - Managing Your Robot Army
SecDevOps 2.0 - Managing Your Robot ArmySecDevOps 2.0 - Managing Your Robot Army
SecDevOps 2.0 - Managing Your Robot Armyconjur_inc
 

Viewers also liked (10)

CI - A Refactor Story - Boston DevOps Meetup March 2015
CI - A Refactor Story - Boston DevOps Meetup March 2015CI - A Refactor Story - Boston DevOps Meetup March 2015
CI - A Refactor Story - Boston DevOps Meetup March 2015
 
Using Puppet With A Secrets Server
Using Puppet With A Secrets ServerUsing Puppet With A Secrets Server
Using Puppet With A Secrets Server
 
Q Con New York 2015 Presentation - Conjur
Q Con New York 2015 Presentation - ConjurQ Con New York 2015 Presentation - Conjur
Q Con New York 2015 Presentation - Conjur
 
Rsac15 exhibit target plan 3 20
Rsac15 exhibit target plan 3 20Rsac15 exhibit target plan 3 20
Rsac15 exhibit target plan 3 20
 
Security For Humans
Security For HumansSecurity For Humans
Security For Humans
 
система превентивного виховання
система превентивного вихованнясистема превентивного виховання
система превентивного виховання
 
Zero trust server management - lightning
Zero trust server management - lightningZero trust server management - lightning
Zero trust server management - lightning
 
The 5 Stages of Secrets Management Grief, And How to Prevail
The 5 Stages of Secrets Management Grief, And How to Prevail The 5 Stages of Secrets Management Grief, And How to Prevail
The 5 Stages of Secrets Management Grief, And How to Prevail
 
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...
 
SecDevOps 2.0 - Managing Your Robot Army
SecDevOps 2.0 - Managing Your Robot ArmySecDevOps 2.0 - Managing Your Robot Army
SecDevOps 2.0 - Managing Your Robot Army
 

Similar to How to build a self-documenting application

Mastering Secrets Management in Rundeck
Mastering Secrets Management in RundeckMastering Secrets Management in Rundeck
Mastering Secrets Management in RundeckRundeck
 
Leveraging Analytics for DevOps
Leveraging Analytics for DevOpsLeveraging Analytics for DevOps
Leveraging Analytics for DevOpsMichael Floyd
 
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...DevOps.com
 
Delivering Applications Continuously to Cloud
Delivering Applications Continuously to CloudDelivering Applications Continuously to Cloud
Delivering Applications Continuously to CloudIBM UrbanCode Products
 
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree	Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree AnikeyRoy
 
Here Be Dragons: Security Maps of the Container New World
Here Be Dragons: Security Maps of the Container New WorldHere Be Dragons: Security Maps of the Container New World
Here Be Dragons: Security Maps of the Container New WorldC4Media
 
Is DevOps Braking Your Company?
Is DevOps Braking Your Company?Is DevOps Braking Your Company?
Is DevOps Braking Your Company?conjur_inc
 
MuleSoft Surat Meetup#48 - Anypoint API Governance (RAML, OAS and Async API) ...
MuleSoft Surat Meetup#48 - Anypoint API Governance (RAML, OAS and Async API) ...MuleSoft Surat Meetup#48 - Anypoint API Governance (RAML, OAS and Async API) ...
MuleSoft Surat Meetup#48 - Anypoint API Governance (RAML, OAS and Async API) ...Jitendra Bafna
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1G R VISHAL
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxAlfonso Martino
 
Intro to DevOps using Azure DevOps
Intro to DevOps using Azure DevOpsIntro to DevOps using Azure DevOps
Intro to DevOps using Azure DevOpsTJTurner6
 
A proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversionA proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversionCollabNet
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseVMware Tanzu
 
Platform Security IRL: Busting Buzzwords & Building Better
Platform Security IRL:  Busting Buzzwords & Building BetterPlatform Security IRL:  Busting Buzzwords & Building Better
Platform Security IRL: Busting Buzzwords & Building BetterEqual Experts
 
Microsoft Skills Bootcamp - The power of GitHub and Azure
Microsoft Skills Bootcamp - The power of GitHub and AzureMicrosoft Skills Bootcamp - The power of GitHub and Azure
Microsoft Skills Bootcamp - The power of GitHub and AzureDavide Benvegnù
 
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptxMuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptxShiva Sahu
 
Practical Data Mesh: Building Decentralized Data Architectures with Event Stream
Practical Data Mesh: Building Decentralized Data Architectures with Event StreamPractical Data Mesh: Building Decentralized Data Architectures with Event Stream
Practical Data Mesh: Building Decentralized Data Architectures with Event StreamEva Mave Ng
 
Practical Data Mesh: Building Decentralized Data Architectures with Event Str...
Practical Data Mesh: Building Decentralized Data Architectures with Event Str...Practical Data Mesh: Building Decentralized Data Architectures with Event Str...
Practical Data Mesh: Building Decentralized Data Architectures with Event Str...Harshana Martin
 
15-factor-apps.pdf
15-factor-apps.pdf15-factor-apps.pdf
15-factor-apps.pdfNilesh Gule
 

Similar to How to build a self-documenting application (20)

Mastering Secrets Management in Rundeck
Mastering Secrets Management in RundeckMastering Secrets Management in Rundeck
Mastering Secrets Management in Rundeck
 
Leveraging Analytics for DevOps
Leveraging Analytics for DevOpsLeveraging Analytics for DevOps
Leveraging Analytics for DevOps
 
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
 
Delivering Applications Continuously to Cloud
Delivering Applications Continuously to CloudDelivering Applications Continuously to Cloud
Delivering Applications Continuously to Cloud
 
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree	Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
 
Here Be Dragons: Security Maps of the Container New World
Here Be Dragons: Security Maps of the Container New WorldHere Be Dragons: Security Maps of the Container New World
Here Be Dragons: Security Maps of the Container New World
 
Is DevOps Braking Your Company?
Is DevOps Braking Your Company?Is DevOps Braking Your Company?
Is DevOps Braking Your Company?
 
MuleSoft Surat Meetup#48 - Anypoint API Governance (RAML, OAS and Async API) ...
MuleSoft Surat Meetup#48 - Anypoint API Governance (RAML, OAS and Async API) ...MuleSoft Surat Meetup#48 - Anypoint API Governance (RAML, OAS and Async API) ...
MuleSoft Surat Meetup#48 - Anypoint API Governance (RAML, OAS and Async API) ...
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
 
Intro to DevOps using Azure DevOps
Intro to DevOps using Azure DevOpsIntro to DevOps using Azure DevOps
Intro to DevOps using Azure DevOps
 
A proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversionA proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversion
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
 
Platform Security IRL: Busting Buzzwords & Building Better
Platform Security IRL:  Busting Buzzwords & Building BetterPlatform Security IRL:  Busting Buzzwords & Building Better
Platform Security IRL: Busting Buzzwords & Building Better
 
Microsoft Skills Bootcamp - The power of GitHub and Azure
Microsoft Skills Bootcamp - The power of GitHub and AzureMicrosoft Skills Bootcamp - The power of GitHub and Azure
Microsoft Skills Bootcamp - The power of GitHub and Azure
 
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptxMuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
 
Practical Data Mesh: Building Decentralized Data Architectures with Event Stream
Practical Data Mesh: Building Decentralized Data Architectures with Event StreamPractical Data Mesh: Building Decentralized Data Architectures with Event Stream
Practical Data Mesh: Building Decentralized Data Architectures with Event Stream
 
Practical Data Mesh: Building Decentralized Data Architectures with Event Str...
Practical Data Mesh: Building Decentralized Data Architectures with Event Str...Practical Data Mesh: Building Decentralized Data Architectures with Event Str...
Practical Data Mesh: Building Decentralized Data Architectures with Event Str...
 
15-factor-apps.pdf
15-factor-apps.pdf15-factor-apps.pdf
15-factor-apps.pdf
 
DevOps lagos meetup
DevOps lagos meetupDevOps lagos meetup
DevOps lagos meetup
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

How to build a self-documenting application

  • 1. 2015 #ChefConf Workshop Building a Self-Documenting Compliant Application www.conjur.net | @conjurinc
  • 2. © Confidential Set-up Prerequisites 1.Sign up for the Conjur demo appliance http://info.conjur.net/secrets-management-demo 2. Login to the demo appliance If you’re on Windows, use Putty http://bit.ly/1NAHh3Y Ready To Deep Dive?
  • 3. © Confidential Welcome! I. Agenda II. Workshop Goals III.Meet Your Workshop Hosts, Conjur Introduction IV.Ready To Deep Dive? Set-up Conjur Prerequisites ● Part I: Introduction to DevOps and Compliance / Q&A ● Part II: Chef Secrets Management Overview / Q&A Agenda
  • 4. © Confidential - Break - ● Part III: Practicum - Build a Sample App ● Part IV: Compliance & Chef; Good Practice / Q&A ● Part V: Traceability, Auditability and Chef / Q&A V. Wrap up Agenda
  • 5. © Confidential Workshop Goals After this workshop, you will: ● Have a deeper understanding of how compliance with Chef, access to the Chef Server, and Secrets Management are interrelated. ● Know how to implement a delivery pipeline that combines the two topics in a self-documenting and highly automated fashion.
  • 6. © Confidential Your Workshop Hosts ● Kevin Gilpin, CTO and Co-Founder, Conjur - Kevin has 19 years of technical leadership in enterprise software, delivering solutions to the Fortune 500. He has held technical positions at Infinity Pharmaceuticals, Praxeon Inc, i2 Technologies, and Trilogy, where he developed technology that delivered pioneering interactivity on the web and has ultimately been adopted across the industry. @kegilpin ● Elizabeth Lawler, CEO & Co-Founder, Conjur - Elizabeth Lawler is CEO and Co- founder of Conjur, Inc. Elizabeth has over 20 years of experience working in highly regulated and sensitive data environments. Prior to founding Conjur, Elizabeth was Chief Data Officer of Generation Health and held a leadership position in research at the Department of Veterans Affairs. She has been a programmer herself and is constantly working to make software development and IT systems easier to manage for people working in regulated industries. @elizabethlawler
  • 7. © Confidential Your Workshop Hosts ● Dustin Collins, Developer Advocate, Conjur - Dustin is a polyglot engineer and Conjur's developer advocate. He organizes the Boston DevOps meetup and is most interested in how we as a community can iterate on our processes and tools to enable continuous delivery of quality software. @dustinmm80 ● Christopher Farnham, Novartis - Chris is a proven software development and operations team leader within diverse domains, including banking, publishing, military and biotechnology. He has demonstrated deep and broad knowledge of SDLC processes within highly regulated, demanding (but ultimately person driven) environments. @chrisfarnham
  • 8. © Confidential Conjur Introduction We believe that security success for all organizations is determined at the business and infrastructure levels ● Conjur is a privileged access security platform for large and fast- growing cloud and web-based enterprises using next generation technologies. ● It provides a smarter, transparent, automated way to scale and manage critical secrets and access control. It’s used on-premise or in your cloud (private, public, hybrid).
  • 9. © Confidential Conjur Introduction Application Auth Systems Access Internal Network Physical Infrastructure Firewall Control Plane We provide the modern access management and audit solution for the missing pieces: Systems Admin and the Systems Control Plane. Conjur Resolves The Access Control Gap
  • 10. © Confidential Conjur Introduction ● Conjur solves three critical infrastructure security growth issues: > Secrets Management > Access Control (SSH) (e.g., machines, robots, humans) > Audit (Compliance) ● Integration-Friendly! We work with all technology stacks.
  • 12. © Confidential Part I. Introduction to DevOps and Compliance Compliance for People who Cringe at “Compliance”
  • 13. © Confidential How the Business Views DevOps How does DevOps work? Magic.
  • 14. © Confidential Compliance and DevOps Source: DevOps: The Worst-Kept Secret to Winning in the Application Economy CA Technologies October 2014 cite: http://rewrite.ca.com/us/~/media/rewrite/pdfs/white-papers/devops-winning-in- application-economy.pdf
  • 15. © Confidential Goal: Reproducible, Reliable Processes ● Same packages ● Same configuration … and… ● Same security and compliance controls
  • 16. © Confidential ● Automated and traceable authorizations for promotion of code to production ● Role-based access controls that acknowledge when DevOps personnel have access to production systems and document the specific use cases ● Encryption and logical access controls which essentially “lock-out” unauthorized access (to systems or data) Adapted From Brightline https://www.brightline.com/2012/12/auditing-devops-developers-with- access-to-production/) Auditors/Compliance want to see
  • 17. © Confidential ● File integrity monitoring (and alerting) on changes to production code versus the traditional focus on critical operating system executable ● File access monitoring on the source code itself with appropriate alerting ● Extensive logging and daily, if not real-time, log review of the above data sources Adapted From Brightline https://www.brightline.com/2012/12/auditing-devops-developers-with- access-to-production/) Auditors/Compliance want to see
  • 18. © Confidential ● Single source for all change requests ○ No change is deployed without a request ○ Intent is that most problems can be diagnosed via the change reporting systems ● Clear separation of roles between developer and deployer ○ Or at least developer cannot deploy without review ● Clear metrics to demonstrate improvement ○ Mean Time To Recovery ○ Percentage of failed deployments/changes Goals for delivery automation
  • 19. © Confidential Dev, Test, & Prod Environments Code Review Infrastructure Source Code Goal automate documentation of this Infrastructure Code Developer deploy Continuous Build & Unit Test Config, Release, Deployment commit on branch build check approval tests pass
  • 20. © Confidential Part II Chef and Access Management
  • 21. © Confidential ● Access control is determined by “gates” which can be opened and closed by human or automated processes ● SSH gates access to production machines by developers and code ● Secrets gate access to production services by developers and code ○ Access to a secret constitutes access to a production service The Importance of SSH and Secrets
  • 22. © Confidential State of Chef + SSH Combining users + sudo cookbook is a popular solution. Workflow ● Create a data bag for your users and place it in a my_users cookbook ● Create JSON entries for each user w/ group membership and public SSH keys ● Upload the data bag and cookbook to Chef server Include the sudo recipe in my_users cookbook to set passwordless sudo for your users
  • 23. © Confidential State of Chef + Secrets chef-vault + IAM is a popular solution workflow ● Create IAM JSON file defining access permissions to S3 buckets ● Script out creating IAM users/groups/policies for specific access to a set of secrets ● create a vault and encrypt the JSON output of the previous step, tied to a specific Chef query
  • 24. © Confidential State of Chef + Audit Chef Analytics ● Tracks changes to Chef objects (clients, nodes, etc) and who made them in real-time ● You write controls into your recipes, compliance tests that report back to analytics after Chef run Guardrail ● SAAS that tracks changes to infrastructure in real-time, can trigger alerts on specific changes
  • 25. © Confidential We will create a simple, but real infrastructure using Chef, Conjur, and Docker. Infrastructure activity and access will be fully managed and audited. Workshop Flow - Overview Chef Chef Server is the definitive source of server configuration. Chef deploy and validation keys provide access to Chef Server. Chef provides audit and verification of server installs. Conjur Provides User, Group, and Host identity. Stores and distributes secrets. Manages SSH access to machines. Records audit of all permission changes, access to secrets, and access to hosts, plus custom audit records of cookbook pushes. Docker Used to run infrastructure machines: deploy can push cookbooks to Chef Server. Accessible only to ops. sentry application server. Accessible to ops and developers.
  • 26. © Confidential ◁ Move to the source directory and fetch all the code Workshop Flow - Get the Code cd chefconf15 git submodule update --init --recursive Submodule 'cookbooks/foundation' (https://github.com/conjurdemos/chefconf15- base.git) registered for path 'cookbooks/foundation' Submodule 'cookbooks/sentry' (https://github.com/conjurdemos/chef-sentry) registered for path 'cookbooks/sentry' …
  • 27. © Confidential ◁ Create an ops group to own the key ◁ You’re a member of security_admin, so you’re also a member of ops. group conjur group create --as-group security_admin ops { "id": "ops", "ownerid": "demo:group:security_admin", "gidnumber": null, "roleid": "demo:group:ops", "resource_identifier": "demo:group:ops" }
  • 28. © Confidential ◁ Store the public key of the ‘demo’ user (that’s you) in Conjur. Workshop Flow - Load your Public Key conjur pubkeys add demo @~/.ssh/id_rsa.pub Public key 'demo@ip-10-97-161-35' added
  • 30. © Confidential ◁ Copy deploy.pem and validation.pem from your Chef Server ◁ Save to the local files : deploy.pem and validation.pem ◁ deploy.pem has permission to manage cookbooks ◁ validation.pem used to register new machines with Chef Workshop Flow - Download the Chef Keys
  • 31. © Confidential Workshop Flow - Store the Chef deploy.pem conjur variable create --as-group ops -m application/x-pem-file chef-server/deploy/private_key cat deploy.pem | conjur variable values add chef-server/deploy/private_key { "id": "chef-server/deploy/private_key", "mime_type": "application/x-pem-file", "kind": "secret", "version_count": 0 } Value added ◁ Create the variable and store the key
  • 32. © Confidential ◁ Store the Chef server validation key in Conjur Workshop Flow - Store the Chef validation.pem conjur variable create --as-group ops -m application/x-pem-file chef-server/validation/private_key { "id": "chef-server/validation/private_key", "mime_type": "application/x-pem-file", "kind": "secret", "version_count": 0 } cat validation.pem | conjur variable values add chef-server/validation/private_key Value added
  • 34. © Confidential ◁ Foundation image cookbook is pre-loaded into the Chef server. Along with Conjur auth and RBAC, this is the foundation of trust in the infrastructure. ⊃ Base OS. ⊃ Packages - Chef, Conjur ⊃ SSH access - Conjur SSH - login with your own private key, always ⊃ /etc/conjur.conf + /etc/conjur-demo.pem - Verified TLS for everything ⊃ Only public info! No secrets. https://github.com/conjurdemos/chefconf15-base Workshop Flow - Foundation Image
  • 35. © Confidential “Deploy” server builds on the foundation image ◁ .conjurenv → Chef validation.pem ◁ client.rb → Chef client configuration ◁ deploy.sh → Docker entrypoint, uploads all cookbooks to Chef server. Cookbooks should be volume-mounted to Docker Workshop Flow - Build Deploy Server docker build -t deploy deploy/
  • 36. © Confidential Workshop Flow - Create Deploy Host conjur host create --as-group ops deploy-01 | tee deploy-01.json ◁ Conjur - Create a Host identity for the Deploy server ◁ Assign ownership to the ops group cat << ENV > deploy-01.env CONJUR_AUTHN_LOGIN=host/deploy-01 CONJUR_AUTHN_API_KEY=$(cat deploy-01.json | jsonfield api_key) ENV
  • 37. © Confidential ◁ Launch the deploy host ◁ Host does not have access to the secret … yet Workshop Flow - Test the Deploy Host docker run --env-file deploy-01.env --entrypoint conjur deploy env check error: Some variables are not available CLIENT_PEM: unavailable
  • 38. © Confidential ◁ Give access to the Chef key to the deploy host Workshop Flow - Grant Access to Chef conjur resource permit variable:chef-server/deploy/private_key host:deploy-01 execute Permission granted
  • 39. © Confidential ◁ Run the deploy box as a daemon. We will use SSH to access it. Workshop Flow - Launch the deploy box docker run -d --env-file deploy-01.env --name deploy -v $PWD/cookbooks/:/cookbooks -p 2200:22 deploy *** Running /etc/my_init.d/10_foundation-configure.sh... [2015-03-28T20:56:58+00:00] INFO: Forking chef instance to converge... [2015-03-28T20:56:58+00:00] INFO: *** Chef 12.0.3 *** … *** Runit started as PID 336 Mar 28 20:57:09 613420620e92 syslog-ng[345]: syslog-ng starting up; version='3.5.3' docker logs -f deploy
  • 41. © Confidential ◁ Login to the deploy host ◁ On the deploy host, display user info. Group membership is controlled by Conjur. Workshop Flow - Login to the deploy host ssh -p 2200 localhost demo@e9de200cc9da:~$ id uid=1100(demo) gid=50000(conjurers) groups=50000(conjurers) This icon means, run this command from inside a container
  • 42. © Confidential ◁ Use the deploy host to list cookbooks ◁ Group ‘conjurers’ is whitelisted to passwordless-sudo this command. Workshop Flow - List Cookbooks sudo list-all apt 2.7.0 build-essential 2.2.1 conjur-client 0.3.1 foundation 0.1.1 sshd-service 1.1.0 terminal-login 0.2.3 yum 3.5.3
  • 43. © Confidential ◁ Exit the container with Control-D and navigate to the cookbooks directory ◁ Rename the sentry folder to end with your initials Workshop Flow - Build the sentry Cookbook cd cookbooks mv sentry sentry-yourname ← changeme! cd sentry-yourname
  • 44. © Confidential Edit metadata.rb ◁ Change the cookbook name to end with your initials ◁ Increment the version to 0.2.0 Workshop Flow - Build the sentry Cookbook
  • 45. © Confidential ◁ Edit recipes/default.rb Workshop Flow - Build the sentry Cookbook
  • 46. © Confidential ◁ Login to the deploy host Workshop Flow - Login to the deploy host ssh -p 2200 localhost demo@e9de200cc9da:~$
  • 47. © Confidential ◁ This sequence will vendor the Berksfile in /cookbooks/sentry, then upload the cookbook with dependencies. Workshop Flow - Upload Cookbooks sudo upload sentry-yourname # ./upload-all /cookbooks/sentry/ Resolving cookbook dependencies... Fetching 'sentry-keg' from source at . Using build-essential (2.2.2) Using python (1.4.6) Using yum (3.5.3) Using sentry-keg (0.1.6) from source at . Using yum-epel (0.6.0) Vendoring build-essential (2.2.2) to /cookbooks/sentry//.vendor/build-essential Vendoring python (1.4.6) to /cookbooks/sentry//.vendor/python Vendoring sentry-keg (0.1.6) to /cookbooks/sentry//.vendor/sentry-keg Vendoring yum (3.5.3) to /cookbooks/sentry//.vendor/yum Vendoring yum-epel (0.6.0) to /cookbooks/sentry//.vendor/yum-epel Uploading sentry-keg [0.1.6] Uploaded all cookbooks.
  • 48. © Confidential ◁ Audit activity shows access to secrets, as well as the upload event Workshop Flow - Inspect the audit conjur audit all -s [2015-03-30 18:28:25 UTC] demo:host:deploy-01 checked that they can execute demo:variable:chef-server/deploy/private_key (true) [2015-03-30 18:28:30 UTC] demo:host:deploy-01 created resource demo:chef-cookbook:foundation owned by demo:host:deploy-01 [2015-03-30 18:28:31 UTC] demo:host:deploy-01 reported cookbook-deploy:upload; message: Uploaded cookbook 'foundation' with command options: --include-dependencies
  • 49. © Confidential ◁ Run a MySQL server ◁ Display the connection info Workshop Flow - Launch database server cd ~/chefconf15/database source start.sh Launching database Database launched! Check $DB_HOST and $DB_PASSWORD echo $DB_PASSWORD eee5377d52c6b033
  • 50. © Confidential ◁ Store the DB password in Conjur Workshop Flow - Store the database password conjur variable create --as-group ops sentry/mysql/password $DB_PASSWORD { "id": "sentry/mysql/password", "mime_type": "text/plain", "kind": "secret", "version_count": 1 }
  • 51. © Confidential ◁ Return to $HOME/chefconf15 Workshop Flow - Chdir cd ~/chefconf15
  • 52. © Confidential ◁ Create the host ◁ Permit secrets access Workshop Flow - Configure Sentry host conjur host create --as-group ops sentry-01 | tee sentry-01.json cat << ENV > sentry-01.env CONJUR_AUTHN_LOGIN=host/sentry-01 CONJUR_AUTHN_API_KEY=$(cat sentry-01.json | jsonfield api_key) ENV conjur resource permit variable:chef-server/validation/private_key host:sentry-01 execute conjur resource permit variable:sentry/mysql/password host:sentry-01 execute
  • 53. © Confidential ◁ Build the image Workshop Flow - Build Sentry app docker build -t sentry sentry/
  • 54. © Confidential ◁ Run the Sentry box as a daemon. Workshop Flow - Run Sentry docker run -d --env-file sentry-01.env --name sentry -e DB_HOST=$DB_HOST -e COOKBOOK_NAME=sentry-keg -p 2201:22 -p 8080:9000 sentry *** Running /etc/my_init.d/10_foundation-configure.sh... [2015-03-28T20:56:58+00:00] INFO: Forking chef instance to converge... [2015-03-28T20:56:58+00:00] INFO: *** Chef 12.0.3 *** … *** Runit started as PID 336 Mar 28 20:57:09 613420620e92 syslog-ng[345]: syslog-ng starting up; version='3.5.3' docker logs -f sentry Change this to match your cookbook name
  • 55. © Confidential ◁ Login to the sentry box ◁ On the sentry box, run chef-client Workshop Flow - Configure sentry ssh -p 2201 localhost … chef-client run happens here $ sudo conjur env run -c /.conjurenv -- sudo -E chef-client -c /etc/chef/client.rb -o $COOKBOOK_NAME
  • 56. © Confidential ◁ You can now view the Sentry UI on port 8080 of your endpoint. Workshop Flow - View Sentry UI
  • 57. © Confidential ● Create a developers group and a user. ● Try to deploy, as this user. Workshop Flow - Add New Team Members
  • 58. © Confidential Part IV Regulatory Environments and Chef Server Presented by Chris Farnham, Novartis @chrisfarnham
  • 59. © Confidential DevOps Mission Development Operations strives to shorten and amplify feedback loops, thereby bringing software development and IT operations closer to end users.
  • 60. © Confidential Macro Trends ● Self-service ● Virtualization ● Automation ● Manage sets of assets not individual assets ● External collaborations ● Data Explosion ● Globalizaton ● Mobile devices ● Internet of Things
  • 61. © Confidential In order for Chef to manage system configurations in our regulated environment it needed to be regulated itself. This is daunting; the following high-level strategy really helped me deliver First: Describe the system and list all activities Second: Go through each activity and ask: ◁ Can I declare this activity out of scope? ◁ Can I reuse (or map it to) a pre-existing policy or activity? ◁ Can I leverage automation (in lieu of documentation)? ◁ Document the activity at an appropriate level The above is generally ordered best to worst (but ultimately not that bad) Chef in a regulated environment
  • 62. © Confidential ◁ Gather product documentation ◁ List all components and integrations to the system ◁ List all activities with the system with careful attention to status updates ◁ Describe and list the roles and responsibilities associated with the system Example activities: ◁ Create/Modify/Update Cookbooks in Chef Server ◁ Bootstrap (add)/Remove Node Protip: Declare a “maintenance” activity with a change tracking process of “none” ; because nothing changes when this activity occurs System activities
  • 63. © Confidential Always look to manage scope and be aware of which integrated systems are particularly sensitive (read: important) and which integrated systems are managed by other groups ◁ Declare which products and systems are “in scope” ◁ Explicitly declare what is “out of scope” Examples: ◁ Repository development activities (e.g., Berkshelf, cookbook writing) were declared “out of scope” ◁ Repository changes (e.g., upload, remove) were declared “in-scope” ◁ Supporting infrastructure (e.g., monitoring, Jenkins) was declared “out of scope” Managing scope
  • 64. © Confidential Documentation and processes already existed for many things, we just reused them. Examples: ◁ Server provisioning and retirement ← On-premise ◁ Incident management (we just needed to declare roles and list points of contact) ◁ Backup and recovery Reusing existing activities
  • 65. © Confidential Leveraging automation Automated processes, where everything happens in a traceable and auditable manner (driven out of assets managed in source control) provide great flexibility and insulation within the change control process. Example doc excerpt: “change tickets must be filed for all medium risk updates unless performed via source control driven automation.”
  • 66. © Confidential Figuring out what should be documented at a high-level and what should be detailed is an art but important Control related documentation is usually tracked and signed (a rigorous process). Do yourself a favor and only put core, less frequently changed information within the core doc (the operations manual). Then make heavy use of referenced “working instructions” that can be updated without going through a heavy process Documenting activities
  • 67. © Confidential ◁ Really get to know the compliance group ⊃ Ask to attend meetings, request 1 on 1s, have lunch with them ⊃ Goal is to learn their language, concerns and establish a personal relationship ◁ Learn the groups, communication paths, workflows and activities within the organization ⊃ How are change management decisions made? ⊃ Who are the operational and compliance stakeholders? Homework
  • 68. © Confidential We hope you learned A LOT today! Next Steps... > Test drive our on-demand demo at conjur.net > Check out our dev docs at developer.conjur.net > Set up a live 1:1 demo to learn more > Subscribe to our blog & monthly newsletter > Follow us @conjurinc Thank You!

Editor's Notes

  1. At Conjur, we feel that the security aspects of Firewall, Application Auth, Networking, and Physical Infrastructure are well-understood and well-addressed in cloud.
  2. DevOps speeds innovation and delivers business value through faster feature deployment and more stable application deployments which provide those businesses with DevOps methodologies in place a strong competitive edge. However, there is a simple problem with DevOps that concerns the business.
  3. To business people, coded infrastructure and DevOps workflows are magic. They can’t see it but it makes stuff happen. Stuff that is important to them, like delivering features faster, more stable applications and better uptime and scaling with the business. Chris’ history with DevOps IGM + Security
  4. But that runs contrary to the goals of compliance, security and auditing which is to increase transparency around those applications and infrastructures that are considered vital and high-risk to the business. So at one level the business is asking you to go faster and do more with less, and the countervailing force is that there is a desire for transparency to protect the business. Next slide = alignment and learning governance needs (relationships)
  5. But when you can get the business and deveops to align, then everyone can wrap their minds around the new goal which is actually a reproducable process that is compliance and secure. Learning governance stakeholders language, concerns, backgrounds, needs
  6. A modular pipeline can have its parts swapped out at will. A robust security setup needs to be able to accommodate continuous pipeline improvements, swapping out modules as business and operation needs change Demonstrate to your auditor that all code changes are checked, tested, tracked, and then released into production. That you can create a complete history of the (recent) past and current structure of your entire environment. Access controls for people and system accounts exist and are well documented, logged and auditable and that you have remediation plans in place in case of an “event”
  7. Separation of Duties and Least Priviiege * Your user management is tied directly to Chef The Chef server loses some collaborative functions Separation of Concerns More complicated scenarios quickly become tangled different rights for different environments, e.g., dev team can ssh into dev but not prod, but ops has both hard to implement least privilege, for access to specific roles you have to set attributes directly on them CRUD on users requires a cookbook update -> release cycle * separate Chef servers/orgs needed for each environment if you want to test your changes before hitting prod * Requires access to Chef server to test cookbooks dependent on user databags * Completely separate from how to manage secrets, have to write your own bridge No report or audit No single point of configuration - layers and layers of roles and attributes; default + override, etc Enterprise directory integration SSH access management is completely separate from secrets or app/service auth or anything else
  8. chef-vault+IAM: http://sysadvent.blogspot.com/2013/12/day-19-automating-iam-credentials-with.html (Dec 2013) on chef-vault: http://jtimberman.housepub.org/blog/2013/09/10/managing-secrets-with-chef-vault/ (Sep 2013) problems * until a Chef node completes its first run, it cannot use secrets (invisible to search until then) * you end up with unencrypted files in your repos that have to be gitignored - how are they shared or backed up? * you have to create ‘sets’ of secrets - for each new permutation you need a different set - a Chef node query is mapped to one set * admin setup is all or nothing - all users you select in your query can fetch/update/delete secrets * adding/removing hosts and users requires that the Chef query is re-run * how this works for development is unclear - gitignoring files, adding switches to cookbooks if using vagrant/kitchen, mocking out node attributes - this is a result of being completely dependent on Chef search Noah’s overview: https://coderanger.net/chef-secrets/ (Aug 2014) Data bags vs resources: https://coderanger.net/data-bags/ (Feb 2014)
  9. Chef Analytics Separate from Chef Server so that allows for Chef Analytics to be managed and monitored outside the working Chef System Write rules that trigger on events or event sequences of events Send emails, log messages or AMQP messages based upon rules etc. These are both very useful tools, but they are only part of a larger picture. Chef Analytics will tell you what has changed in Chef, but what about the compliance of your underlying infrastructure and applications? Guardrail isn’t tied to Chef and covers everything changing on your server/instance but finding out who made a change requires reverse-engineering. What’s missing? * Secrets management audit - who has access, who is fetching and updating? A clear view. audit of permissions changes - eg temporary privilege escalation, changes to group membership * SSH logins/sudo calls
  10. logout of the container is the first step…
  11. Really get to know the compliance group I had Gene Kim’s, “Visible Ops” books almost permanently on-hand and referred to them often. Data bags & bootstrapping ← need to document
  12. List every activity performed with the tool and declare the impact of the activity. This will dictate the rigor of the change control process. List roles and responsibilities associated with Chef e.g., Chef Manager, Chef Administrator, Customer Provide specific classifications of impact (e.g., high, medium and low risk) with associated change tracking processes (e.g., file change control ticket) HINT: Create a “maintenance” activity with a change tracking process of “none” Example activities: “Create/Modify/Update Cookbooks in Chef Server” or “Bootstrap (add)/Remove Node”
  13. Always look to manage scope and be aware of which systems are particularly sensitive (read: important) and which systems are managed by other groups Declare which products and systems are “in scope” Explicitly declare what is “out of scope” Map high level features and activities to workflows and activities within your organization
  14. Automated processes, where everything happens in a traceable and auditable manner (driven out of assets managed in source control) provide great flexibility and insulation within the change control process. You can declare, “change tickets must be filed for all medium risk updates unless performed via source control driven automation (list your org’s specifics).” Statements like the former within your documentation provide huge flexibility and leverage. As you update your automation and expand its scope, you should be able to file fewer and fewer change control tickets.
  15. Validating Chef Document how the product will be deployed within your organization Describe Incident and problem management. Hopefully, simply map this to pre-existing incident management documentation Backup and restore management Service and support Leverage existing processes and documentation wherever possible. use whole, other processes completely or make only minor tweaks to existing tools and processes Think creatively: Source control commit and accompanying data (e.g., message, diff and author) is a change control ticket or Chef cookbook is an installation document (that happens to be executable). Framing mechanisms in these terms allows you to map modern devops tools and processes on top of outdated change control and governance processes and documentation. It eases compliance group’s concerns because you are making incremental changes rather than throwing everything out and starting over