AmazonLinuxでSELinuxを有効にするCloudFormationテンプレート

最近週末は、趣味でSELinuxを触っています。手軽に試したかったのでAWSのAmazonLinuxを使うことにしました。
しかしAmazonLinuxはデフォルトでSELinuxがインストールされておりませんので、SELinuxパッケージ群をインストールする必要があります。
SELinuxはモジュールをカスタマイズしていくので、ごちゃごちゃになってたりするので、頻繁に環境を作り直しをしたくなりました。
そこでCloudFormationでAmazonLinuxをSELinux化するテンプレートを書きましたので、こちらを備忘として貼って置こうと思います。

テンプレート

AWSTemplateFormatVersion: "2010-09-09"
Description:
  Create EC2 instance on amazon linux that install selinux.

Parameters:
  InstanceType:
    Type: String
    Default: t2.micro
  Ec2SshKey:
    Type: String

Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-9c9443e3
      InstanceType: !Ref InstanceType
      KeyName: !Ref Ec2SshKey
      UserData:
        Fn::Base64:
          !Sub |
            #!/bin/bash -xe
            yum update -y aws-cfn-bootstrap
            yum install -y selinux-policy-targeted policycoreutils-python setools-console
            sed -i -e 's/selinux=0/security=selinux selinux=1/g' /boot/grub/menu.lst
            dracut --force
            touch /.autorelabel
            shutdown -r now
      Tags:
        - Key: Name
          Value: !Ref AWS::StackName

ログインして確認してみると。。。

Amazon LinuxにログインしてSELinuxがインストールされていることを確認してみます。
無事にSELinuxが導入されたことが確認できるかと思います。

SELinuxモードを確認

$ getenforce 
Enforcing

SELinuxのスタータス確認

$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
SELinux root directory:         /etc/selinux/
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31

以上