Türchen #2: S3 Check - Sind alle Buckets verschlüsselt und nicht-öffentlich?


In unserer kleinen Adventskalender Blogserie möchten wir Euch verschiedene Themen vorstellen.
Weiter geht es mit "Türchen Nummer 2" - S3 Buckets Schnell-Check

S3 Buckets sollen verschlüsselt und nicht-öffentlich sein

InSpec ist ein praktisches Framework rund um das Thema Security. Seit Version 2 bietet es diverse Resource Checks an, um u. a. AWS Setups auf Herz und Nieren zu prüfen. Zur Ausführung wird ein IAM User mit entsprechenden Berechtigungen vorrausgesetzt. InSpec selbst kann direkt von der Kommandozeile oder aus Docker heraus aufgerufen werden. Damit der Start in die erste Dezemberwoche leicht fällt, hier, ohne lange Vorrede, zwei konkrete Beispiele:

Zunächst stellen wir aber sicher, das InSpec installiert ist und über entsprechende AWS Berechtigungen verfügt: siehe AWS Cloud Platform Support.

InSpec direkt aufrufen

  inspec detect -t aws://

InSpec aus Docker heraus aufrufen

Hier wird es etwas anspruchsvoller, da wir unsere IAM (Session-) Credentials temporär in einen Docker Container einschleusen müssen:


INSPEC_VERSION="4.18"
INSPEC_OPTIONS="--log-level=error --show-progress"
INSPEC_ACCEPT_EULA="--chef-license=accept-silent"
INSPEC_DOCKER_RUN="docker container run -it -e AWS_SESSION_TOKEN -e AWS_REGION -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY --rm -v $(pwd):/share chef/inspec:$INSPEC_VERSION"

eval $INSPEC_DOCKER_RUN \
	detect \
	-t aws:// \
	$INSPEC_ACCEPT_EULA

Control Code: Überprüfe alle S3 Buckets

Legen wir uns nun eine Datei test_s3.rb mit Ruby Test Code folgendem Inhalts an:


title 'S3 Bucket Tests'

control 's3-public-buckets' do

  all_buckets = aws_s3_buckets.bucket_names

  all_buckets.each do |b|
    describe aws_s3_bucket(b) do
      it { should_not be_public }
      it { should have_default_encryption_enabled }
    end
  end

end

…und führen hiernach die Tests aus (entweder direkt oder wie oben beschrieben - mittels Docker):

  inspec exec test_s3.rb -t aws://

Nach kurzer Zeit sehen wir, ob alle S3 Buckets im Account und in der gesetzen Region nicht-öffentlich und verschlüsselt sind.

Zurück zu den Blogbeiträgen

Trainings und Workshops

Vom Kurs für Einsteiger bis hin zu Experten-Workshops mit Tiefgang können wir Euch mit technischen Trainings unterstützen. Darüber hinaus bieten wir auch Workshops mit Fokus auf Cloud-Strategie oder für die Vertriebsmannschaft an.

Mehr...