From ad62cb85753c889ba5c163ac7ba5b87f6fe1ded0 Mon Sep 17 00:00:00 2001 From: wr148d Date: Mon, 1 Jun 2020 16:32:00 -0400 Subject: [PATCH] Containers should not run as root by default Issue-ID: AAI-2822 Signed-off-by: wr148d Change-Id: I4a2db1838d1b8238dec06c2a7d839797b27dadce --- search-data-service-app/src/main/bin/start.sh | 27 +------------------- search-data-service-app/src/main/docker/Dockerfile | 29 +++++++++++----------- 2 files changed, 15 insertions(+), 41 deletions(-) diff --git a/search-data-service-app/src/main/bin/start.sh b/search-data-service-app/src/main/bin/start.sh index d04362d..c430b0d 100644 --- a/search-data-service-app/src/main/bin/start.sh +++ b/search-data-service-app/src/main/bin/start.sh @@ -14,34 +14,9 @@ if [ -z "$KEY_STORE_PASSWORD" ]; then exit 1 fi - -# Changes related to:AAI-2179 -# Change aai search-data container processes to run as non-root on the host -USER_ID=${LOCAL_USER_ID:-9001} -GROUP_ID=${LOCAL_GROUP_ID:-9001} -SD_LOGS=/var/log/onap/AAI-SDB - -if [ $(cat /etc/passwd | grep aaiadmin | wc -l) -eq 0 ]; then - - groupadd aaiadmin -g ${GROUP_ID} || { - echo "Unable to create the group id for ${GROUP_ID}"; - exit 1; - } - useradd --shell=/bin/bash -u ${USER_ID} -g ${GROUP_ID} -o -c "" -m aaiadmin || { - echo "Unable to create the user id for ${USER_ID}"; - exit 1; - } -fi; - -chmod -R 0755 ${MICRO_HOME} -chown -R aaiadmin:aaiadmin ${MICRO_HOME} -chown -R aaiadmin:aaiadmin ${AJSC_HOME} -chown -R aaiadmin:aaiadmin ${SD_LOGS} - find ${MICRO_HOME} -name "*.sh" -exec chmod +x {} + -gosu aaiadmin ln -snf /logs $MICRO_HOME/logs -JAVA_CMD="exec gosu aaiadmin java"; +JAVA_CMD="exec java"; ### PROPS="-DAJSC_HOME=$AJSC_HOME" PROPS="$PROPS -DAJSC_CONF_HOME=$AJSC_CONF_HOME" diff --git a/search-data-service-app/src/main/docker/Dockerfile b/search-data-service-app/src/main/docker/Dockerfile index 45ef185..a40ae7f 100644 --- a/search-data-service-app/src/main/docker/Dockerfile +++ b/search-data-service-app/src/main/docker/Dockerfile @@ -2,6 +2,8 @@ FROM @aai.docker.namespace@/aai-common-@aai.base.image@:@aai.base.image.version@ ARG MICRO_HOME=/opt/app/search-data-service ARG BIN_HOME=$MICRO_HOME/bin +ARG SD_LOGS=/var/log/onap/AAI-SDB + #AAI-2179 Additional optional steps for Ubuntu RUN if ((uname -v | grep -i "ubuntu") || ( cat /etc/*release|grep -i "ubuntu") ) ; then \ ##################################### @@ -17,26 +19,23 @@ RUN if ((uname -v | grep -i "ubuntu") || ( cat /etc/*release|grep -i "ubuntu") JAVA_HOME=usr/lib/jvm/java-8-openjdk-amd64; \ export JAVA_HOME ; \ fi; \ - ########################################## - #Install gosu if not present - ########################################## - if type gosu 2>/dev/null; then \ - echo "skipping gosu installation"; \ - else \ - set -x ; \ - add-apt-repository -y ppa:tianon/gosu; \ - sudo apt-get update; \ - sudo apt-get install gosu; \ - fi;\ fi # Build up the deployment folder structure -RUN mkdir -p $MICRO_HOME $USERS_HOME /logs +RUN mkdir -p $MICRO_HOME $USERS_HOME /logs $MICRO_HOME/bundleconfig/etc $BIN_HOME $SD_LOGS + +RUN groupadd aaiadmin -g 1000 +RUN adduser -u 1000 -h /opt/aaihome/aaiadmin -S -D -G aaiadmin -s /bin/bash aaiadmin + WORKDIR $MICRO_HOME -RUN mkdir -p $MICRO_HOME/bundleconfig/etc -RUN mkdir -p $BIN_HOME + +RUN chown -R aaiadmin:aaiadmin $MICRO_HOME $MICRO_HOME/logs $SD_LOGS + # copy everything from search-data-service-app/target/docker/nexus3.onap.org/10003/onap/search-data-service/latest/build/maven/search-data-service-app -COPY /maven/search-data-service-app/ . +COPY --chown=aaiadmin:aaiadmin /maven/search-data-service-app/ . + +USER aaiadmin + RUN chmod -R 755 $BIN_HOME/* $MICRO_HOME/* RUN ln -snf /logs $MICRO_HOME/logs -- 2.16.6