サービス間の混乱した代理の防止 - AWS データベース移行サービス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サービス間の混乱した代理の防止

混乱した代理問題は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。では AWS、サービス間のなりすましにより、混乱した代理人問題が発生する可能性があります。サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。これを防ぐために、 AWS には、アカウント内のリソースへのアクセス権が付与されたサービスプリンシパルですべてのサービスのデータを保護するために役立つツールが用意されています。

aws:SourceArnaws:SourceAccountリソースポリシーではグローバル条件コンテキストキーとグローバル条件コンテキストキーを使用して、 AWS Database Migration Service リソースに別のサービスを付与する権限を制限することをおすすめします。aws:SourceArn 値に AWS DMS レプリケーションインスタンス名 (ARN) などのアカウント ID が含まれていない場合は、両方のグローバル条件コンテキストキーを使用してアクセス権限を制限する必要があります。同じポリシーステートメントでこれらのグローバル条件コンテキストキーの両方を使用し、アカウント ID にaws:SourceArn の値が含まれていない場合、aws:SourceAccount 値と aws:SourceArn 値の中のアカウントには、同じアカウント ID を使用する必要があります。クロスサービスのアクセスにリソースを 1 つだけ関連付けたい場合は、aws:SourceArn を使用します。そのアカウント内のリソースをクロスサービスの使用に関連付けることを許可する場合は、aws:SourceAccount を使用します。

AWS DMS 3.4.7 以降のバージョンでは、混乱した副オプションをサポートするようになりました。詳細については、「AWS Database Migration Service 3.4.7 リリースノート」を参照してください。レプリケーションインスタンスが AWS DMS 3.4.6 以前のバージョンを使用している場合は、混乱した代理オプションを設定する前に必ず最新バージョンにアップグレードしてください。

混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定して、aws:SourceArn グローバル条件コンテキストキーを使用することです。リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、グローバルコンテキスト条件キー aws:SourceArn で、ARN の未知部分を示すためにワイルドカード文字 (*) を使用します。例えば、arn:aws:dms:*:123456789012:rep:* です。

AWS DMS API と併用する IAM ロール (サービス間の混乱した代理人防止)

AWS CLI または AWS DMS API をデータベース移行に使用するには、の機能を使用する前に、dms-vpc-roleおよび dms-cloudwatch-logs-role IAM AWS ロールをアカウントに追加する必要があります。 AWS DMS詳細については、「AWS CLI および で使用するIAMロールの作成 AWS DMS API」を参照してください。

次の例は、my-replication-instance レプリケーションインスタンスで dms-vpc-role ロールを使用する際のポリシーを示しています。これらのポリシーを使用して、混乱した代理問題を防止します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "AWS:SourceAccount": "your_account_id" }, "ArnEqual": { "AWS:SourceArn": "arn:aws:dms:your_region:your_account_id:rep:my-replication-instance" } } } ] }

サービス間の混乱を防ぐために Amazon S3 にプリフライト評価を保存する IAM ポリシー

事前評価の結果を S3 バケットに保存するには、Amazon S3 のオブジェクトの管理を許可する AWS DMS IAM ポリシーを作成します。詳細については、「 IAM リソースの作成 」を参照してください。

以下の例は、 AWS DMS 指定されたユーザーアカウントでのすべてのタスクと評価実行へのアクセスを許可する IAM ロールに設定された、混乱した副条件を含む信頼ポリシーを示しています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "AWS:SourceAccount": "your_account_id" }, "ArnLike": { "AWS:SourceArn": [ "arn:aws:dms:your_region:your_account_id:assessment-run:*", "arn:aws:dms:region:your_account_id:task:*" ] } } } ] }

Amazon DynamoDB をターゲットエンドポイントとして使用し、 AWS DMS クロスサービスの混乱副防止を実現

Amazon DynamoDB をデータベース移行のターゲットエンドポイントとして使用するには、DynamoDB テーブルへのアクセスを引き受けて許可する IAM ロールを作成する必要があります。 AWS DMS その後、 AWS DMSでターゲットの DynamoDB エンドポイントを作成する際に、このロールを使用します。詳細については、「ターゲットとしての Amazon DynamoDB の使用」を参照してください。

次の例は、 AWS DMS すべてのエンドポイントに DynamoDB テーブルへのアクセスを許可する IAM ロールに設定された、混乱した副条件を含む信頼ポリシーを示しています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "AWS:SourceAccount": "your_account_id" }, "ArnLike": { "AWS:SourceArn": "arn:aws:dms:your_region:your_account_id:endpoint:*" } } } ] }