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ユーザでログイン可能。
コメント
コメントを投稿