https://docs.aws.amazon.com/ja_jp/fsx/latest/WindowsGuide/self-managed-AD.html
https://dev.classmethod.jp/articles/attention-to-use-fsx-ad-validation-tool/
https://docs.aws.amazon.com/ja_jp/fsx/latest/WindowsGuide/validate-ad-config.html
https://dev.classmethod.jp/articles/self-managed-ad-best-practices-for-fsx-for-windows/
https://cloud-si.com/powershell-tls12/
※デプロイタイプ(「シングルAZ 1」「マルチAZ」等) は作成後変更できない
前提:
AZは1Aを使用
VPCはデフォルトを使用
ADドメイン :contoso.com
-- 1. コマンド等のインストール
-- 1.1 aws cli version 2 インストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-- 1.2 jqインストール
sudo yum -y install jq
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
aws iam create-role \
--role-name role01 \
--assume-role-policy-document file://role01.json
-- 3. ポリシーをロールにアタッチ
aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess \
--role-name role01
-- 4. インスタンスプロファイルを作成
aws iam create-instance-profile --instance-profile-name profile01
aws iam list-instance-profiles | grep InstanceProfileName
-- 5. インスタンスプロファイルにロールを追加
aws iam add-role-to-instance-profile --instance-profile-name profile01 --role-name role01
aws iam list-instance-profiles-for-role --role-name role01
-- 6. FSx用セキュリティグループの作成
aws ec2 create-security-group \
--description fsx \
--group-name fsx \
--vpc-id vpc-11111111111111111
aws ec2 describe-security-groups | jq -r '.SecurityGroups | [ .GroupId, .GroupName ]'
-- インバウンドルール追加
-- 自セキュリティグループからの全トラフィックを許可
-- 172.31.0.0/16からの全トラフィック許可
-- 0.0.0.0/0からのRDPを許可
aws ec2 authorize-security-group-ingress \
--group-id sg-22222222222222222 \
--protocol all \
--port all \
--source-group sg-22222222222222222
aws ec2 authorize-security-group-ingress \
--group-id sg-22222222222222222 \
--protocol all \
--port all \
--cidr 172.31.0.0/16
aws ec2 authorize-security-group-ingress \
--group-id sg-22222222222222222 \
--protocol tcp \
--port 3389 \
--cidr 0.0.0.0/0
Windows_Server-2016-Japanese-Full-Base-2022.08.10
ami-022c51ab022dd1197
t3.small (2vCPU 2GiB)
aws ec2 run-instances \
--image-id ami-022c51ab022dd1197 \
--instance-type t3.small \
--key-name key1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=instance01}]' \
--subnet-id subnet-33333333333333333 \
--associate-public-ip-address \
--security-group-ids sg-22222222222222222 \
--iam-instance-profile Name="profile01"
aws ec2 describe-instances
-- 8. AD作成
ドメインコントローラ用EC2インスタンスにAdministratorでログイン
Windows PowerShellを管理者として実行
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
$pass = ConvertTo-SecureString -AsPlainText -Force "password"
Install-ADDSForest -DomainName contoso.com -SafeModeAdministratorPassword $pass -Force
-- 9. アクティブディレクトリ設定
ドメインコントローラ用EC2インスタンスにcontoso.com\Administratorでログイン
OU を1つ新規作成
グループを1つ新規作成
ドメインユーザーを2つ新規作成
うち1ユーザーは作成したグループのメンバーにする
OU名: testou
グループ名: testgroup (FSx管理者グループ)
ユーザ名: user01 (FSxサービスアカウント) -> 「Amazon FSx サービスアカウントへの許可の委任」を実施
user02 (FSx管理者ユーザ) -> testgroupグループに所属させる
-- 10. アクティブディレクトリ設定の検証
Windows PowerShellを管理者として実行
Import-Module ActiveDirectory
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-WebRequest "https://docs.aws.amazon.com/fsx/latest/WindowsGuide/samples/AmazonFSxADValidation.zip" -OutFile "AmazonFSxADValidation.zip"
Expand-Archive -Path "AmazonFSxADValidation.zip"
Import-Module .\AmazonFSxADValidation
$Credential = Get-Credential
→ contoso.com\user01 を入力
$FSxADValidationArgs = @{
# DNS root of ActiveDirectory domain
DomainDNSRoot = 'contoso.com'
# IP v4 addresses of DNS servers
DnsIpAddresses = @('172.31.11.11')
# Subnet IDs for Amazon FSx file server(s)
SubnetIds = @('subnet-33333333333333333')
# Specify an organizational unit
OrganizationalUnit = 'OU=testou,DC=contoso,DC=com'
Credential = $Credential
}
$Result = Test-FSxADConfiguration @FSxADValidationArgs
→Test 3 - Validate FSx service user credentialsで警告、それ以降のテストはスキップとなるが、無視して作業を進める
-- 11. ファイルシステムを作成する
aws fsx describe-file-systems
aws fsx create-file-system \
--file-system-type WINDOWS \
--storage-capacity 32 \
--storage-type SSD \
--subnet-ids subnet-33333333333333333 \
--security-group-ids sg-22222222222222222 \
--windows-configuration '{
"SelfManagedActiveDirectoryConfiguration": {
"DomainName": "contoso.com",
"OrganizationalUnitDistinguishedName": "OU=testou,DC=contoso,DC=com",
"FileSystemAdministratorsGroup": "testgroup",
"UserName": "user01",
"Password": "password",
"DnsIps": ["172.31.11.11"]
},
"DeploymentType": "SINGLE_AZ_1",
"PreferredSubnetId": "subnet-33333333333333333",
"ThroughputCapacity": 8,
"WeeklyMaintenanceStartTime": "6:18:00",
"DailyAutomaticBackupStartTime": "16:00",
"AutomaticBackupRetentionDays": 0,
"CopyTagsToBackups": false,
"AuditLogConfiguration": {
"FileAccessAuditLogLevel": "DISABLED",
"FileShareAccessAuditLogLevel": "DISABLED"
}
}' \
--tags '[ { "Key": "Name", "Value": "fs01" } ]'
-- 12. Amazon FSx for Windows を EC2(Windows)にマウント
ドメインコントローラ用EC2インスタンスにcontoso.com\Administratorでログイン
net use Z: \\444444444444444.contoso.com\share
net use
net use Z: /D
-- 13. クリーンアップ
-- ファイルシステムの削除
aws fsx describe-file-systems
aws fsx delete-file-system \
--file-system-id fs-55555555555555555
-- EC2インスタンスの削除
aws ec2 describe-instances
aws ec2 terminate-instances --instance-ids i-66666666666666666
-- FSx用セキュリティグループの削除
aws ec2 describe-security-groups | jq -r '.SecurityGroups | [ .GroupId, .GroupName ]'
aws ec2 delete-security-group --group-id sg-22222222222222222
-- インスタンスプロファイルの削除
aws iam remove-role-from-instance-profile --instance-profile-name profile01 --role-name role01
aws iam delete-instance-profile --instance-profile-name profile01
aws iam list-instance-profiles | grep InstanceProfileName
-- IAMロールの削除
aws iam list-roles | grep role01
aws iam detach-role-policy \
--role-name role01 \
--policy-arn arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess
aws iam delete-role --role-name role01