AWS Cloudformation EC2 linux Managed AD 起動時 シームレス参加

 以下の手順をベースにCloudformation化できる。


Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory にシームレスに結合する


■事前準備

・Managed AD構築済(DHCPセット済)


     参考

     【CloudFormation】AWS Managed Microsoft AD + DHCPOptionSet を構築する cfn テンプレートを書いてみた


・セッションマネージャー経由でEC2にアクセス可であること。


★Cloudformationテンプレートのポイント


1. ADのAdminのシークレット作成(セキュリティ上よろしくないが。。。)


 ※以下赤字を変更すると、正常に動作しなくなる(d-xxxxxxxxx はディレクトリID指定。)


Resources:

  ManagedADSecret:

    Type: AWS::SecretsManager::Secret

    Properties:

      Name: aws/directory-services/d-xxxxxxxxx/seamless-domain-join

      Description: Secret for Managed AD credentials

      SecretString: '{"awsSeamlessDomainUsername": "Admin", "awsSeamlessDomainPassword": "<AdminのPassword>"}'


2. Secrets Manager の IAM 読み取りポリシーを作成

赤字は「1.」で作成したシークレット


  SecretsManagerPolicy:

    Type: AWS::IAM::Policy

    Properties:

      PolicyName: SecretsManagerAccessPolicy

      Path "/"

      PolicyDocument:

        Version: "2012-10-17"

        Statement:

          - Effect: Allow

            Action:

              - secretsmanager:GetSecretValue

              - secretsmanager:DescribeSecret

            Resource:

              - !Ref ManagedADSecret


3. シームレス参加させるEC2のIAMRoleに「2.」のポリシー追加

以下赤字は必須。


  Ec2LinuxIamRole:

    Type: AWS::IAM::Role

    Properties:

      Path "/"

      AssumeRolePolicyDocument:

        Statement:

          - Action: sts:AssumeRole

            Effect: Allow

            Principal:

              Service: ec2.amazonaws.com

        Version: "2012-10-17"

      ManagedPolicyArns:

        - !Ref SecretsManagerPolicy

        - 'arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore'

        - 'arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess'


4. EC2に以下 SsmAssociations 以降の追加

「3.」のIAMロール(インスタンスプロファイル)を以下に追記必要。


LinuxEc2:

    Type: AWS::EC2::Instance

    Properties:

                :

       SsmAssociations:

         - AssociationParameters:

             - Key: directoryId

               Value:

                 - <ディレクトリID>

             - Key: directoryName

               Value:

                 - <ドメイン名>

           DocumentName: AWS-JoinDirectoryServiceDomain


5. CloudformationでEC2起動後、ドメイン参加されてADユーザでログイン可能。



コメント

このブログの人気の投稿

AWS Cloudformation ImportValue Sub 併用