DataSyncでFSx for Windows File Serverへデータを移行する際、System access control lists (SACLs)を同期できるようになってました

2021.08.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

中山(順)@リカバリー中 です。

今日は、DataSyncでFSx for Windows File Serverにデータを移行する際にSystem access control lists (SACLs)を同期できるようになっていたので、この機能の動作を確認してみたいと思います。

AWS DataSync can now copy system access control lists (SACLs) to Amazon FSx for Windows File Server

ついでにDataSync自体の使い方を勉強したいと思います。(DataSync、ほぼ触ったことない)

System access control lists (SACLs) is 何?

一言で言うと、監査ログ(アクセスログ)を取得するための設定です。 「どのユーザーが」「どのような操作を実行したか」を記録するための設定です。

A system access control list (SACL) enables administrators to log attempts to access a secured object. Each ACE specifies the types of access attempts by a specified trustee that cause the system to generate a record in the security event log. An ACE in a SACL can generate audit records when an access attempt fails, when it succeeds, or both. For more information about SACLs, see Audit Generation and SACL Access Right.

Access Control Lists

SACLsを移行する必要性について

FSx for Windows File Serverの機能としてアクセスログの取得設定が存在しますが、監査ログの取得にあたってはSACLsの設定(NTFS自体に対する設定)も必要となります。

詳細は以下のドキュメントをご確認ください。

Auditing access to files and folders

やってみた

構成図

今回はSACLsの同期に関する動作確認が目的なので、関連リソースをすべてDefault VPC上に構成するものとします。

なお、以下のリソースは作成済みとします。

  • Microsoft AD (DirectoryService)
    • Default VPC上に作成
    • ドメイン名は"example.com"
  • EC2 Instance (Windows Server 2019)
    • Default VPC上に作成
    • Microsoft ADにドメイン参加済み
    • Microsoft ADのユーザー管理等を行うために管理ツールをインストール(あとで移行用のユーザーを作成予定)
    • VPC内部からのSMB(TCP/445)によるアクセスを許可

FSx for Windows File Serverのファイルシステムを作成

まず、前提となるリソースを作成します。

  • Security Group

Security GroupはVPC内からSMB (TCP/445) によるアクセスを許可します。

aws ec2 create-security-group \
    --group-name fsx-smb \
    --description "FSx for Windows File Server" \
    --vpc-id vpc-0e3f6fef1f710c869
{
    "GroupId": "sg-0ee1a989e4cc34baa"
}
aws ec2 authorize-security-group-ingress \
    --group-id "sg-0ee1a989e4cc34baa" \
    --protocol tcp \
    --port 445 \
    --cidr '172.31.0.0/16'
{
    "Return": true,
    "SecurityGroupRules": [
        {
            "SecurityGroupRuleId": "sgr-06e358c8ca0f263fd",
            "GroupId": "sg-0ee1a989e4cc34baa",
            "GroupOwnerId": "xxxxxxxxxxxx",
            "IsEgress": false,
            "IpProtocol": "tcp",
            "FromPort": 445,
            "ToPort": 445,
            "CidrIpv4": "172.31.0.0/16"
        }
    ]
}

移行先となるファイルシステムを作成します。 この際、ファイルへのアクセス成功のみログを取得するように設定します。 なお、この設定の場合にはログがCloudWatch Logsのロググループ"/aws/fsx/windows"に出力されます。

WINDOWS_CONF_FILE_NAME='Windows-Conf.json'

cat << EOF > ${WINDOWS_CONF_FILE_NAME}
{
    "ActiveDirectoryId": "d-95670189a5",
    "DeploymentType": "SINGLE_AZ_1",
    "PreferredSubnetId": "subnet-03267eb84db1ec870",
    "ThroughputCapacity": 32,
    "AuditLogConfiguration": {
        "FileAccessAuditLogLevel": "SUCCESS_ONLY",
        "FileShareAccessAuditLogLevel": "DISABLED"
    }
}
EOF

aws fsx create-file-system \
    --file-system-type WINDOWS \
    --storage-capacity 32 \
    --storage-type SSD \
    --subnet-ids subnet-03267eb84db1ec870 \
    --security-group-ids "sg-0ee1a989e4cc34baa" \
    --windows-configuration file://${WINDOWS_CONF_FILE_NAME}
{
    "FileSystem": {
        "OwnerId": "xxxxxxxxxxxx",
        "CreationTime": "2021-08-05T00:05:53.047000+00:00",
        "FileSystemId": "fs-06550a5bff84707a8",
        "FileSystemType": "WINDOWS",
        "Lifecycle": "CREATING",
        "StorageCapacity": 32,
        "StorageType": "SSD",
        "VpcId": "vpc-0e3f6fef1f710c869",
        "SubnetIds": [
            "subnet-03267eb84db1ec870"
        ],
        "DNSName": "fs-06550a5bff84707a8.example.com",
        "KmsKeyId": "arn:aws:kms:ap-northeast-1:xxxxxxxxxxxx:key/c31052c5-64fe-4161-b922-7f4fee0f46c9",
        "ResourceARN": "arn:aws:fsx:ap-northeast-1:xxxxxxxxxxxx:file-system/fs-06550a5bff84707a8",
        "Tags": [],
        "WindowsConfiguration": {
            "ActiveDirectoryId": "d-95670189a5",
            "DeploymentType": "SINGLE_AZ_1",
            "RemoteAdministrationEndpoint": "fs-06550a5bff84707a8.example.com",
            "PreferredSubnetId": "subnet-03267eb84db1ec870",
            "ThroughputCapacity": 32,
            "WeeklyMaintenanceStartTime": "3:19:00",
            "DailyAutomaticBackupStartTime": "20:00",
            "AutomaticBackupRetentionDays": 7,
            "CopyTagsToBackups": false,
            "AuditLogConfiguration": {
                "FileAccessAuditLogLevel": "SUCCESS_ONLY",
                "FileShareAccessAuditLogLevel": "DISABLED",
                "AuditLogDestination": "arn:aws:logs:ap-northeast-1:xxxxxxxxxxxx:log-group:/aws/fsx/windows:log-stream:audit_fs-06550a5bff84707a8"
            }
        }
    }
}

移行用ユーザーの作成と権限の付与

Microsoft ADに移行タスク用のユーザーを作成します。

ユーザー名は、"migration"とします。

移行元に対するアクセス制御設定

まず、移行元とする共有フォルダを作成します。 細かい手順は作成しますが、アクセス権限および共有の設定を以下のようにしました。

また、監査設定を読み取れるようにするため、ドメインユーザーである"example.com\migration"をローカルグループの"Administrators"のメンバーとしました。

そして、本記事の本題である監査設定を追加します。

移行先に対するアクセス制御設定

移行先に対する権限の付与ですが、Microsoft ADでユーザー"migration"をグループ"AWS Delegated FSx Administrators"のメンバーにします。

Creating a location for Amazon FSx for Windows File Server

DataSync Agentのインストール

次に、DataSync Agentを構成します。 Agentと言いつつも、移行元のEC2にインストールするのではなく、仮想アプライアンスとして専用のEC2インスタンスを作成します。

まず、AMI IDを確認します。

aws ssm get-parameter --name /aws/service/datasync/ami
{
    "Parameter": {
        "Name": "/aws/service/datasync/ami",
        "Type": "String",
        "Value": "ami-0cb0a9702109facf4",
        "Version": 23,
        "LastModifiedDate": "2021-06-18T15:28:06.898000+00:00",
        "ARN": "arn:aws:ssm:ap-northeast-1::parameter/aws/service/datasync/ami",
        "DataType": "text"
    }
}

また、アクティベーションを行うためにHTTPでのインバウンド通信を許可するSecurity Groupを作成します。

aws ec2 create-security-group \
    --group-name datasync-agent \
    --description "DataSync Agent" \
    --vpc-id vpc-0e3f6fef1f710c869
{
    "GroupId": "sg-0d12da0d3be8ccc5d"
}

なお、この許可は一時的に必要なものであり、後で削除可能です。

aws ec2 authorize-security-group-ingress \
    --group-id "sg-0d12da0d3be8ccc5d" \
    --protocol tcp \
    --port 80 \
    --cidr '0.0.0.0/0'
{
    "Return": true,
    "SecurityGroupRules": [
        {
            "SecurityGroupRuleId": "sgr-02ecdd84ebedaa92a",
            "GroupId": "sg-0d12da0d3be8ccc5d",
            "GroupOwnerId": "xxxxxxxxxxxx",
            "IsEgress": false,
            "IpProtocol": "tcp",
            "FromPort": 80,
            "ToPort": 80,
            "CidrIpv4": "0.0.0.0/0"
        }
    ]
}

DataSync Agent用のEC2インスタンスを作成します。 なお、インスタンスタイプは動作要件を踏まえてm5.2xlargeを利用します。

aws ec2 run-instances \
    --subnet-id subnet-09166ccaa28459f22 \
    --image-id ami-0cb0a9702109facf4 \
    --instance-type m5.2xlarge \
    --security-group-ids "sg-0d12da0d3be8ccc5d"
{
    "Groups": [],
    "Instances": [
        {
            "AmiLaunchIndex": 0,
            "ImageId": "ami-0cb0a9702109facf4",
            "InstanceId": "i-0b83ed846bb197248",
            "InstanceType": "m5.2xlarge",
            "LaunchTime": "2021-08-05T00:16:57+00:00",
            "Monitoring": {
                "State": "disabled"
            },
            "Placement": {
                "AvailabilityZone": "ap-northeast-1a",
                "GroupName": "",
                "Tenancy": "default"
            },
            "PrivateDnsName": "ip-172-31-45-95.ap-northeast-1.compute.internal",
            "PrivateIpAddress": "172.31.45.95",
            "ProductCodes": [],
            "PublicDnsName": "",
            "State": {
                "Code": 0,
                "Name": "pending"
            },
            "StateTransitionReason": "",
            "SubnetId": "subnet-09166ccaa28459f22",
            "VpcId": "vpc-0e3f6fef1f710c869",
            "Architecture": "x86_64",
            "BlockDeviceMappings": [],
            "ClientToken": "6267ef9f-fc42-44dd-a471-4344e65b6e8d",
            "EbsOptimized": false,
            "EnaSupport": true,
            "Hypervisor": "xen",
            "NetworkInterfaces": [
                {
                    "Attachment": {
                        "AttachTime": "2021-08-05T00:16:57+00:00",
                        "AttachmentId": "eni-attach-0767375d70c2c8c47",
                        "DeleteOnTermination": true,
                        "DeviceIndex": 0,
                        "Status": "attaching",
                        "NetworkCardIndex": 0
                    },
                    "Description": "",
                    "Groups": [
                        {
                            "GroupName": "datasync-agent",
                            "GroupId": "sg-0d12da0d3be8ccc5d"
                        }
                    ],
                    "Ipv6Addresses": [],
                    "MacAddress": "06:0b:84:f2:90:fb",
                    "NetworkInterfaceId": "eni-0ef5227bb433b7cd8",
                    "OwnerId": "xxxxxxxxxxxx",
                    "PrivateDnsName": "ip-172-31-45-95.ap-northeast-1.compute.internal",
                    "PrivateIpAddress": "172.31.45.95",
                    "PrivateIpAddresses": [
                        {
                            "Primary": true,
                            "PrivateDnsName": "ip-172-31-45-95.ap-northeast-1.compute.internal",
                            "PrivateIpAddress": "172.31.45.95"
                        }
                    ],
                    "SourceDestCheck": true,
                    "Status": "in-use",
                    "SubnetId": "subnet-09166ccaa28459f22",
                    "VpcId": "vpc-0e3f6fef1f710c869",
                    "InterfaceType": "interface"
                }
            ],
            "RootDeviceName": "/dev/xvda",
            "RootDeviceType": "ebs",
            "SecurityGroups": [
                {
                    "GroupName": "datasync-agent",
                    "GroupId": "sg-0d12da0d3be8ccc5d"
                }
            ],
            "SourceDestCheck": true,
            "StateReason": {
                "Code": "pending",
                "Message": "pending"
            },
            "VirtualizationType": "hvm",
            "CpuOptions": {
                "CoreCount": 4,
                "ThreadsPerCore": 2
            },
            "CapacityReservationSpecification": {
                "CapacityReservationPreference": "open"
            },
            "MetadataOptions": {
                "State": "pending",
                "HttpTokens": "optional",
                "HttpPutResponseHopLimit": 1,
                "HttpEndpoint": "enabled"
            },
            "EnclaveOptions": {
                "Enabled": false
            }
        }
    ],
    "OwnerId": "xxxxxxxxxxxx",
    "ReservationId": "r-04ad47a22deb340bd"
}

DataSyncのリソースとしてのAgentを作成およびアクティベーションを行います。 なお、最後に設定しているグローバルIPアドレスはDataSync Agentのものです。

aws datasync list-agents
{
    "Agents": [
        {
            "AgentArn": "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:agent/agent-0a6f6345d879fb134",
            "Name": "fsx-agnet",
            "Status": "ONLINE"
        }
    ]
}

なお、DataSync AgentのSecurity Groupに設定したHTTP通信を許可するルールは、アクティベーションの完了後は削除可能となります。

Locationの作成

データの移行元および移行先をLocationとして定義します。

まずは移行元のLocationを作成します。

aws datasync create-location-smb \
    --server-hostname "172.31.31.44" \
    --subdirectory "share" \
    --domain "example.com" \
    --user "migration" \
    --password [ PASSWORD ] \
    --agent-arns "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:agent/agent-0a6f6345d879fb134"
{
    "LocationArn": "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:location/loc-040609f9cb8db9fa4"
}

続けて、移行先のLocationも作成します。 この際にSecurity Groupを指定していますが、DataSync AgentのSecurity Groupを指定しています。

aws datasync create-location-fsx-windows \
    --fsx-filesystem-arn "arn:aws:fsx:ap-northeast-1:xxxxxxxxxxxx:file-system/fs-06550a5bff84707a8" \
    --subdirectory "share" \
    --domain "example.com" \
    --user "migration" \
    --password [ PASSWORD ] \
    --security-group-arns "arn:aws:ec2:ap-northeast-1:xxxxxxxxxxxx:security-group/sg-0d12da0d3be8ccc5d"
{
    "LocationArn": "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:location/loc-02fb771a3a9a2071c"
}

Taskの作成

Taskを作成します。 ポイントはオプションの"SecurityDescriptorCopyFlags"を"OWNER_DACL_SACL"に設定するところです。

オプション設定をJSONで記述し、Taskを作成します。 今回はログの出力に関する設定を行っていませんが、必要に応じて出力設定を行いましょう。

TASK_OPTION_FILE_NAME='Windows-Conf.json'

cat << EOF > ${TASK_OPTION_FILE_NAME}
{
  "VerifyMode": "ONLY_FILES_TRANSFERRED",
  "OverwriteMode": "ALWAYS",
  "Atime": "BEST_EFFORT",
  "Mtime": "PRESERVE",
  "PreserveDeletedFiles": "PRESERVE",
  "PreserveDevices": "NONE",
  "TaskQueueing": "ENABLED",  
  "LogLevel": "OFF",
  "TransferMode": "CHANGED",
  "SecurityDescriptorCopyFlags": "OWNER_DACL_SACL"
}
EOF

aws datasync create-task \
    --source-location-arn "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:location/loc-040609f9cb8db9fa4" \
    --destination-location-arn "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:location/loc-02fb771a3a9a2071c" \
    --name fsx-task \
    --options file://${TASK_OPTION_FILE_NAME}
{
    "TaskArn": "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:task/task-0193fc76c7d3c4312"
}

データ移行

タスクを作成したら実行します。

aws datasync start-task-execution \
    --task-arn "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:task/task-0193fc76c7d3c4312"
{
    "TaskExecutionArn": "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:task/task-0193fc76c7d3c4312/execution/exec-0dfebfeb9bd5804b8"
}

Statusが"SUCCESS"になれば、同期は完了です。

aws datasync describe-task-execution \
    --task-execution-arn "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:task/task-0193fc76c7d3c4312/execution/exec-0dfebfeb9bd5804b8"
{
    "TaskExecutionArn": "arn:aws:datasync:ap-northeast-1:xxxxxxxxxxxx:task/task-0193fc76c7d3c4312/execution/exec-0dfebfeb9bd5804b8",
    "Status": "SUCCESS",
    "Options": {
        "VerifyMode": "ONLY_FILES_TRANSFERRED",
        "OverwriteMode": "ALWAYS",
        "Atime": "BEST_EFFORT",
        "Mtime": "PRESERVE",
        "Uid": "NONE",
        "Gid": "NONE",
        "PreserveDeletedFiles": "PRESERVE",
        "PreserveDevices": "NONE",
        "PosixPermissions": "NONE",
        "BytesPerSecond": -1,
        "TaskQueueing": "ENABLED",
        "LogLevel": "OFF",
        "TransferMode": "CHANGED",
        "SecurityDescriptorCopyFlags": "OWNER_DACL_SACL"
    },
    "Excludes": [],
    "Includes": [],
    "StartTime": "2021-08-05T00:44:22.659000+00:00",
    "EstimatedFilesToTransfer": 2,
    "EstimatedBytesToTransfer": 4,
    "FilesTransferred": 2,
    "BytesWritten": 4,
    "BytesTransferred": 4,
    "Result": {
        "PrepareDuration": 1326,
        "PrepareStatus": "SUCCESS",
        "TotalDuration": 7858,
        "TransferDuration": 6210,
        "TransferStatus": "SUCCESS",
        "VerifyDuration": 310,
        "VerifyStatus": "SUCCESS"
    }
}

動作確認

まずは、監査設定が同期できているかを確認します。

net use Z: \\fs-0d24cb9d9580bf5d3.example.com\share

画像の通り、設定を同期できていました。

また、FSx上のファイルを書き換えてログが出ることを確認します。

aws logs get-log-events \
    --log-group-name "/aws/fsx/windows" \
    --log-stream-name audit_fs-06550a5bff84707a8

(結果は一部省略しています)

{
    "events": [
        {
            "timestamp": 1628121952988,
            "message": "<Event xmlns=\"http://schemas.microsoft.com/win/2004/08/events/event\"><System><Provider Name=\"FSx\" /> <TimeCreated SystemTime=\"2021-08-05T00:05:52.988000000Z\" /></System><EventData><Data>This event is written to ensure that AWS FSx has permission to write to your logging destination</Data></EventData></Event>\n",
            "ingestionTime": 1628121952991
        },
        {
            "timestamp": 1628124791335,
            "message": "<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><Provider Name='Microsoft-Windows-Security-Auditing' Guid='{54849625-5478-4994-A5BA-3E3B0328C30D}'/><EventID>4663</EventID><Version>1</Version><Level>0</Level><Task>12800</Task><Opcode>0</Opcode><Keywords>0x8020000000000000</Keywords><TimeCreated SystemTime='2021-08-05T00:53:11.335869700Z'/><EventRecordID>286551</EventRecordID><Correlation/><Execution ProcessID='4' ThreadID='184'/><Channel>Security</Channel><Computer>amznfsxzebnmgfs.example.com</Computer><Security/></System><EventData><Data Name='SubjectUserSid'>S-1-5-21-1081497191-869336239-126019304-1113</Data><Data Name='SubjectUserName'>Admin</Data><Data Name='SubjectDomainName'>example</Data><Data Name='SubjectLogonId'>0x135fc6</Data><Data Name='ObjectServer'>Security</Data><Data Name='ObjectType'>File</Data><Data Name='ObjectName'>\\Device\\HarddiskVolume12\\share\\test.txt</Data><Data Name='HandleId'>0x10ec</Data><Data Name='AccessList'>%%4417\r\n\t\t\t\t</Data><Data Name='AccessMask'>0x2</Data><Data Name='ProcessId'>0x4</Data><Data Name='ProcessName'></Data><Data Name='ResourceAttributes'>S:</Data></EventData></Event>",
            "ingestionTime": 1628124804916
        },
        {
            "timestamp": 1628124791347,
            "message": "<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><Provider Name='Microsoft-Windows-Security-Auditing' Guid='{54849625-5478-4994-A5BA-3E3B0328C30D}'/><EventID>4663</EventID><Version>1</Version><Level>0</Level><Task>12800</Task><Opcode>0</Opcode><Keywords>0x8020000000000000</Keywords><TimeCreated SystemTime='2021-08-05T00:53:11.347785300Z'/><EventRecordID>286552</EventRecordID><Correlation/><Execution ProcessID='4' ThreadID='184'/><Channel>Security</Channel><Computer>amznfsxzebnmgfs.example.com</Computer><Security/></System><EventData><Data Name='SubjectUserSid'>S-1-5-21-1081497191-869336239-126019304-1113</Data><Data Name='SubjectUserName'>Admin</Data><Data Name='SubjectDomainName'>example</Data><Data Name='SubjectLogonId'>0x135fc6</Data><Data Name='ObjectServer'>Security</Data><Data Name='ObjectType'>File</Data><Data Name='ObjectName'>\\Device\\HarddiskVolume12\\share\\test.txt</Data><Data Name='HandleId'>0x10ec</Data><Data Name='AccessList'>%%4424\r\n\t\t\t\t</Data><Data Name='AccessMask'>0x100</Data><Data Name='ProcessId'>0x4</Data><Data Name='ProcessName'></Data><Data Name='ResourceAttributes'>S:</Data></EventData></Event>",
            "ingestionTime": 1628124804916
        }
    ],
    "nextForwardToken": "f/36308396123240282895271013076021881152712923060988674049",
    "nextBackwardToken": "b/36308332825719441939090040242076270613704372536887148544"
}

わかりにくいので整形します("message"部分のXMLを抽出・整形します)。

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" />
    <EventID>4663</EventID>
    <Version>1</Version>
    <Level>0</Level>
    <Task>12800</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2021-08-05T00:53:11.335869700Z" />
    <EventRecordID>286551</EventRecordID>
    <Correlation />
    <Execution ProcessID="4" ThreadID="184" />
    <Channel>Security</Channel>
    <Computer>amznfsxzebnmgfs.example.com</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="SubjectUserSid">S-1-5-21-1081497191-869336239-126019304-1113</Data>
    <Data Name="SubjectUserName">Admin</Data>
    <Data Name="SubjectDomainName">example</Data>
    <Data Name="SubjectLogonId">0x135fc6</Data>
    <Data Name="ObjectServer">Security</Data>
    <Data Name="ObjectType">File</Data>
    <Data Name="ObjectName">\Device\HarddiskVolume12\share\test.txt</Data>
    <Data Name="HandleId">0x10ec</Data>
    <Data Name="AccessList">%%4417
				</Data>
    <Data Name="AccessMask">0x2</Data>
    <Data Name="ProcessId">0x4</Data>
    <Data Name="ProcessName"></Data>
    <Data Name="ResourceAttributes">S:</Data>
  </EventData>
</Event>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" />
    <EventID>4663</EventID>
    <Version>1</Version>
    <Level>0</Level>
    <Task>12800</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2021-08-05T00:53:11.347785300Z" />
    <EventRecordID>286552</EventRecordID>
    <Correlation />
    <Execution ProcessID="4" ThreadID="184" />
    <Channel>Security</Channel>
    <Computer>amznfsxzebnmgfs.example.com</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="SubjectUserSid">S-1-5-21-1081497191-869336239-126019304-1113</Data>
    <Data Name="SubjectUserName">Admin</Data>
    <Data Name="SubjectDomainName">example</Data>
    <Data Name="SubjectLogonId">0x135fc6</Data>
    <Data Name="ObjectServer">Security</Data>
    <Data Name="ObjectType">File</Data>
    <Data Name="ObjectName">\Device\HarddiskVolume12\share\test.txt</Data>
    <Data Name="HandleId">0x10ec</Data>
    <Data Name="AccessList">%%4424
				</Data>
    <Data Name="AccessMask">0x100</Data>
    <Data Name="ProcessId">0x4</Data>
    <Data Name="ProcessName"></Data>
    <Data Name="ResourceAttributes">S:</Data>
  </EventData>
</Event>

"4663" の部分で、ファイルへのアクセスが行われたイベントであることを識別できます。 また、"AccessList"および"AccessMask"の部分でファイルおよび属性の書き込みイベントであることを識別できます。 詳細は以下のドキュメントで確認できます。

4663(S): An attempt was made to access an object.

まとめ

少々細かいですが、SCALsの同期ができることを確認しました。 移行元の環境(ファイルサーバー)で厳格にセキュリティ対策を行っている場合には活用できるのではないでしょうか?

また、個人的にはDataSyncをほぼはじめて触ってみましたがシンプルでわかりやすいですね。 データの整合性チェックもしっかりできますし、良いサービスだなって思いました(小並)

参考情報

20210316 AWS Black Belt Online Seminar AWS DataSync