Tuesday, October 25, 2016

AWS Certified Solutions Architect – Associate exam - FAQ

I recently passed the AWS (Amazon Web Services) Certified Solutions Architect – Associate exam.



In this blog post I list out some tips and observations about this certification.

Note: The most authoritative source of this certification is the AWS website  - https://aws.amazon.com/certification/certified-solutions-architect-associate/
This blog gives my subjective version.

Who is this certification for? 


This certification is for architects who will design entire systems using the AWS infrastructure. This certification covers a broad list of topics, with very less depth. It is for generalists, not specialists.

What should I know before I start preparing? 


You should have experience designing or maintaining architecture for at least 1 year. You need basic IT experience  at least 7 years.

How much time will it take to prepare? 


I needed about 3 months of preparation, spending about 1 hour a day. I have been an IT solutions architect for a few years and I have some experience using basic AWS features.

What resources should I use? 

[Note - this is subjective] My main guide was Linux Academy (https://linuxacademy.com/). I shopped around several options and found that their course style matched my preference. I also referred to this blog for revising and notes - http://codingbee.net/tutorials/aws/aws-csa-associate/aws-about-this-course/

How will I benefit? 

This certification will give you confidence of knowing nearly 80% of the features of AWS. You will be able to demonstrate that you can setup and maintain a simple cloud infrastructure, or you can be a confident member of a team that runs a large cloud infrastructure.

What can I do after I pass? Check out the AWS Certified Solutions Architect - Professional exam. This exam will provide you the advanced skills needed to be an AWS architect.

Monday, October 17, 2016

Troubleshooting SAML security

Troubleshooting a SAML (https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language) based SSO application can be tricky because of the complexity of the underlying framework over which the development team will have very less control and transparency. There is also the added complexity of not knowing if the problem occurred at the Service Provider or the Identity Provider. These two teams will usually be separate and communication will be a challenge.

Recently while working on a Spring Security SAML project, there was a need to trouble shoot the application to find the root cause.

Here are three simple tips to make troubleshooting simpler for Spring applications that use SAML for security.

Enable SAML logging


SAML in Spring uses SLF4J for logging. Enable logging. More details here - http://docs.spring.io/spring-security-saml/docs/1.0.x-SNAPSHOT/reference/htmlsingle/#logging


Install a SAML plugin in your browser. 


Install a SAML plugin to the browser and debug the SAML requests. While there are several good plugins for Chrome and Firefox browsers, I found (subjectively) the SAML Tracer (https://addons.mozilla.org/en-US/firefox/addon/saml-tracer/) Firefox extension to be very simple and intuitive.

Firefox Extension - SAML Tracer


The SAML Chrome Panel (https://chrome.google.com/webstore/detail/saml-chrome-panel/paijfdbeoenhembfhkhllainmocckace) for Google Chrome browser is more advanced and can be used if you need more visibility.

Ensure that the error.jsp is configured correctly and prints the stacktrace


This is an usually underrated step, but it will be the easiest and best way to start debugging.
Every Authentication Manager in the Spring Security app shall have a Failure Handler. Ensure that a SimpleUrlAuthenticationFailureHandler (http://docs.spring.io/spring-security/site/docs/3.2.9.RELEASE/apidocs/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.html) is configured that forwards to a JSP page. 

This JSP page should be capable of catching and printing Exception stack traces.

Refer this code here for a good example of how this JSP should look like. https://github.com/spring-projects/spring-security-saml/blob/master/sample/src/main/webapp/error.jsp

Authentication log


Maintaining an Authentication log that has key steps can be very helpful in trouble shooting SAML events. More details here - http://docs.spring.io/spring-security-saml/docs/1.0.x-SNAPSHOT/reference/htmlsingle/#configuration-authentication-log

Climate datasets for data analysis

For learners and practitioners of data processing projects (like database administration, database programming, etc) starting with a reliable and interesting dataset can be very useful.

This dataset must be syntactically correct, large enough to provide interesting results and if possible should be real data, to maintain the interest of the practitioner.
For the Apache Spark programming exercises, I have chosen to process climate data of some of the cities I have lived in. This data helps me to run several interesting analysis and
The data source I recommend is the National Centers for Environmental Information (NCEI) website. http://www.ncdc.noaa.gov/cdo-web/datasets 

This dataset is correctly formatted and has interesting metrics. The following notes will show how to get daily climate information for a city over a large date range.

Step 1 - Open the URL  http://www.ncdc.noaa.gov/cdo-web/datasets in your browser. You will see this page.




Step 2 - Click and expand the (+) sign at "Daily Summaries"


Step 3  - Click "Search tool"



Step 4 - Select "Daily Summaries", provide the date range, select "cities" in the "Search For" option and enter "Chennai" in the search term (you can enter your chosen city name here). Click Search.


Step 5 - In the results page, click the button "ADD TO CART" next to the city, or entity that you searched for.



Step 6 - Hover the mouse over the "Cart" icon in the top right. Click "VIEW ALL ITEMS".



Step 7 - In the next page, select the CSV option, verify the date range and click CONTINUE.


Step 8 - Next select the data columns that you need. Precipitation, temperature, etc. Click CONTINUE.


Step 9 - This is the final step. Verify the requested info and provide your email. Click SUBMIT ORDER button. You will receive an email with instructions to download the dataset.







Saturday, October 1, 2016

About this blog

Hello. Welcome to my blog. I am a software developer working mostly on Java based projects. I am maintaining this blog to record some observations and exercises about some software projects that I have a knowledge about.