1

オンプレミス環境を AWS に移行する必要がある状況があります。選択したツールは AWS MGN (アプリケーション移行) です。ソース アプリケーションでのエージェントのロードと使用に関する AWS のドキュメントに従っています。

https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html

ドキュメントには、アクセス キーと秘密キーの必要性が明確に記載されています。私たちの環境は、限られたユーザーを持つルート アカウントでセットアップされ、チームは SSO を介して他のアカウント (例: dev/test/prod/etc.) で AWS 環境にアクセスします。MGN サービスは、次の 4 つのロールも作成します。

  • AWSApplicationMigrationConversionServerRole
  • AWSApplicationMigrationMGHRole
  • AWSApplicationMigrationReplicationServerRole
  • AWSServiceRoleForApplicationMigrationService

「aws sts assume role」を使用して、必要なキーを収集できることはわかっています。たとえば、次のようになります。

AWS_SESSION_TOKEN=$(echo "$test_assume_role_json" | jq -r '.Credentials.SessionToken')
export AWS_SESSION_TOKEN
AWS_ACCESS_KEY_ID=$(echo "$test_assume_role_json" | jq -r '.Credentials.AccessKeyId')
export AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY=$(echo "$test_assume_role_json" | jq -r '.Credentials.SecretAccessKey')

これらのロールは AWS によって作成されたものであり、それらを編集して SSO ユーザー アクセス権を付与することはできません (CLI から「aws sts がロールを引き受ける」ことはできません)。そのため、これらのロールを直接想定することはできません。また、AWS が管理するポリシーを使用するロールを作成することもできません。

私がやりたいことが可能かどうか、または私が見ていない簡単な解決策があるかどうかはよくわかりません。

編集:移行先のアカウントで、次のポリシーを使用してテストロールを作成することに実際に成功しました:

  • AdministratorAccess (AWS 管理ポリシー)
  • AWSApplicationMigrationAgentPolicy (AWS 管理ポリシー)
  • AWSApplicationMigrationFullAccess (AWS 管理ポリシー)
  • AWSApplicationMigrationMGHAccess (AWS 管理ポリシー)
  • AWSApplicationMigrationReadOnlyAccess (AWS 管理ポリシー)
  • AWSApplicationMigrationEC2Access (AWS 管理ポリシー)
  • AWSApplicationMigrationConversionServerPolicy (AWS 管理ポリシー)
  • AWSApplicationMigrationReplicationServerPolicy (AWS 管理ポリシー)

次に、assume-role を実行して、アクセス キーとシークレット キーを取得しました。

C:\>aws sts assume-role --role-arn "arn:aws:iam::<REDACTED>:role/ApplicationMigrationTester" --role-session-name test --profile test
{
    "Credentials": {
        "AccessKeyId": "<REDACTED>",
        "SecretAccessKey": "<REDACTED>",
        "SessionToken": "<REDACTED>",
        "Expiration": "2021-07-15T22:55:08+00:00"
    },
    "AssumedRoleUser": {
        "AssumedRoleId": "<REDACTED>":test",
        "Arn": "arn:aws:sts::<REDACTED>:assumed-role/ApplicationMigrationTester/test"
    }
}

プロンプトが表示されたら、これらの値を使用して管理者としてエージェントを再度実行しようとしました。

C:\>.\AwsReplicationWindowsInstaller.exe
The installation of the AWS Replication Agent has started.
AWS Region Name: us-east-1
AWS Access Key ID: <REDACTED>
AWS Secret Access Key:
Verifying that the source server has enough free disk space to install the AWS Replication Agent.
(a minimum of 2 GB of free disk space is required)
Identifying volumes for replication.
Choose the disks you want to replicate. Your disks are: c:
To replicate some of the disks, type the path of the disks, separated with a comma (for example, C:,D:). To replicate all disks, press Enter:
Disk to replicate identified: c:0 of size 620 GiB
All volumes for replication were successfully identified.
Downloading the AWS Replication Agent onto the source server...
Failed to validate AWS credentials
Installation failed.
Learn more about installation issues in our documentation at https://docs.aws.amazon.com/mgn/latest/ug/Troubleshooting-Agent-Issues.html#Error-Installation-Failed
Press Enter to close...

ご覧のとおり、エラーが発生しました。AWS にチケットを提出して、私のアプローチが現在実現可能かどうかを確認しました。彼らが応答したら、更新します。

4

1 に答える 1