が IAM とAWS Database Migration Service連携する方法 - AWSデータベース移行サービス

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

が IAM とAWS Database Migration Service連携する方法

IAM を使用して へのアクセスを管理する前にAWS DMS、使用できる IAM 機能を理解しておく必要がありますAWS DMS。AWS DMSおよびその他の AWSのサービスが IAM と連携する方法の概要を把握するには、「IAM ユーザーガイド」のAWS「IAM と連携する のサービス」を参照してください。

AWS DMS アイデンティティベースのポリシー

IAM アイデンティティベースのポリシーでは、許可または拒否されたアクションとリソースを指定でき、さらにアクションが許可または拒否された条件を指定できます。AWS DMS は、特定のアクション、リソース、および条件キーをサポートします。JSON ポリシーで使用するすべての要素については「IAM ユーザーガイド」の「IAM JSON ポリシーエレメントのリファレンス」を参照してください。

アクション

管理者は JSON AWSポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

のポリシーアクションは、アクションの前にプレフィックス AWS DMSを使用しますdms:。たとえば、 API オペレーションを使用してAWS DMSCreateReplicationTaskレプリケーションタスクを作成するアクセス許可を付与するには、ポリシーに dms:CreateReplicationTaskアクションを含めます。ポリシーステートメントには、 Actionまたは NotAction element を含める必要があります。 は、このサービスで実行できるタスクを記述する独自のアクションのセットAWS DMSを定義します。

単一のステートメントに複数の アクションを指定するには、次のようにコンマで区切ります。

"Action": [ "dms:action1", "dms:action2"

ワイルドカード *を使用して複数のアクションを指定することができます。例えば、Describe という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

"Action": "dms:Describe*"

AWS DMSアクションのリストを確認するには、IAM ユーザーガイド「 で定義されるアクションAWS Database Migration Service」を参照してください。

リソース

管理者は JSON AWSポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。リソースレベルのアクセス許可をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

AWS DMSは、次のリソースで動作します。

  • 証明書

  • エンドポイント

  • イベントサブスクリプション

  • レプリケーション インスタンス

  • レプリケーションサブネット(セキュリティ)グループ

  • レプリケーションタスク

がAWS DMS必要とするリソースは、呼び出すアクションによって異なります。関連付けられているリソースや、リソース ARN で指定されたリソースに対して、これらのアクションを許可するポリシーが必要です。

たとえば、AWS DMSエンドポイントリソースには次の ARN があります。

arn:${Partition}:dms:${Region}:${Account}:endpoint/${InstanceId}

ARN の形式の詳細については、「Amazon リソースネーム (ARNsとAWSサービス名前空間」を参照してください。

たとえば、ステートメントで us-east-2 リージョンの 1A2B3C4D5E6F7G8H9I0J1K2L3M エンドポイントインスタンスを指定するには、次の ARN を使用します。

"Resource": "arn:aws:dms:us-east-2:987654321098:endpoint/1A2B3C4D5E6F7G8H9I0J1K2L3M"

特定のアカウントに属するすべてのエンドポイントを指定するには、ワイルドカード (*) を使用します。

"Resource": "arn:aws:dms:us-east-2:987654321098:endpoint/*"

リソースを作成するためのアクションなど、一部のAWS DMSアクションは、特定のリソースで実行できません。このような場合はワイルドカード *を使用する必要があります。

"Resource": "*"

一部の AWS DMSAPI アクションには、複数のリソースが含まれます。たとえば、StartReplicationTask はレプリケーション タスクを開始し、ソースとターゲットの 2 つのデータベース エンドポイント リソースに接続するため、 ユーザーには、ソース エンドポイントを読み取るアクセス許可とターゲット エンドポイントに書き込むアクセス許可が必要です。複数リソースを単一ステートメントで指定するには、ARN をカンマで区切ります。

"Resource": [ "resource1", "resource2" ]

ポリシーを使用してAWS DMSリソースへのアクセスを制御する方法の詳細については、「」を参照してくださいリソース名を使用したアクセスの制御。AWS DMS リソースタイプとその ARN のリストを表示するには、IAM ユーザーガイドAWS Database Migration Service で定義されるリソースを参照してください。どのアクションで各リソースの ARN を指定できるかについては、AWS Database Migration Service で定義されるアクションを参照してください。

条件キー

管理者は JSON AWSポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition 要素は、定義された基準に基づいてステートメントが実行される時期を指定します。イコールや未満などの条件演算子を使用して条件式を作成し、ポリシーの条件とリクエスト内の値を一致させることができます。すべてのAWSグローバル条件キーを確認するには、「IAM ユーザーガイド」のAWS「グローバル条件コンテキストキー」を参照してください。

AWS DMSは独自の条件キーのセットを定義し、いくつかのグローバル条件キーの使用もサポートしています。すべてのAWSグローバル条件キーを確認するには、「IAM ユーザーガイド」のAWS「グローバル条件コンテキストキー」を参照してください。

AWS DMSは、条件キーで使用できる一連の標準タグを定義し、独自のカスタムタグを定義することもできます。詳細については、「タグを使用したアクセスへのコントロール」を参照してください。

AWS DMS条件キーのリストを確認するには、IAM ユーザーガイドの「 の条件キーAWS Database Migration Service」を参照してください。条件キーを使用できるアクションとリソースについては、「AWS Database Migration Service で定義されるアクション」と「AWS Database Migration Service で定義されるリソース」を参照してください。

AWS DMSアイデンティティベースのポリシーの例を表示するには、「」を参照してくださいAWS Database Migration Serviceアイデンティティベースのポリシーの例

AWS DMS リソースベースのポリシー

リソースベースのポリシーは、指定されたプリンシパルが特定のAWS DMSリソースに対して実行できるアクションと条件を指定する JSON ポリシードキュメントです。 は、サポートされているターゲットエンドポイントに移行されたデータを暗号化するために作成するAWS KMS暗号化キーのリソースベースのアクセス許可ポリシーAWS DMSをサポートします。サポートされているターゲットエンドポイントには Amazon Redshift や Amazon S3 があります。リソースベースのポリシーを使用することで、これらの暗号化キーを使用するためのアクセス許可を、各ターゲットエンドポイントの他のアカウントに付与できます。

クロスアカウントアクセスを有効にするには、アカウント全体、または別のアカウントの IAM エンティティをリソースベースのポリシーのプリンシパルとして指定します。リソースベースのポリシーにクロスアカウントのプリンシパルを追加しても、信頼関係は半分しか確立されない点に注意してください。プリンシパルとリソースが異なるAWSアカウントにある場合は、プリンシパルエンティティにリソースへのアクセス許可も付与する必要があります。アクセス許可は、アイデンティティベースのポリシーをエンティティにアタッチすることで付与します。ただし、リソースベースのポリシーで、同じアカウントのプリンシパルへのアクセス権が付与されている場合は、ID ベースのポリシーをさらに付与する必要はありません。詳細については、『IAM ユーザーガイド』の「IAM ロールとリソースベースのポリシーとの相違点」を参照してください。

このAWS DMSサービスは、AWS KMS暗号化キーにアタッチされているキーポリシーと呼ばれるリソースベースのポリシーの 1 つのタイプのみをサポートします。このポリシーでは、サポートされているターゲットエンドポイントで移行されたデータを暗号化できるプリンシパルエンティティ(アカウント、ユーザー、ロール、フェデレーティッドユーザー)を定義します。

サポートされているターゲットエンドポイント用に作成する暗号化キーにリソースベースのポリシーをアタッチする方法については、「AWS KMSキーを作成して Amazon Redshift ターゲットデータを暗号化する」および「Amazon S3 ターゲットオブジェクトを暗号化するためのAWS KMSキーの作成」をご参照ください。

AWS DMSリソースベースのポリシーの例については、「」を参照してくださいのリソースベースのポリシーの例AWS KMS

AWS DMS タグに基づく認可

AWS DMSリソースにタグをアタッチすることも、 へのリクエストでタグを渡すこともできますAWS DMS。タグに基づいてアクセスを制御するには、dms:ResourceTag/key-name、、aws:RequestTag/key-nameまたは 条件aws:TagKeysキーを使用してポリシーの条件要素にタグ情報を指定します。 は、条件キーで使用できる一連の標準タグAWS DMSを定義し、独自のカスタムタグを定義することもできます。詳細については、「タグを使用したアクセスへのコントロール」を参照してください。

タグに基づいてリソースへのアクセスを制限するアイデンティティベースのポリシーの例については、「タグに基づく AWS DMS リソースへのアクセス」をご参照ください。

の IAM ロールAWS DMS

IAM ロールは、特定のアクセス許可を持つAWSアカウント内のエンティティです。

での一時的な認証情報の使用AWS DMS

一時的な認証情報を使用して、フェデレーションでサインインする、IAM ロールを引き受ける、またはクロスアカウントロールを引き受けることができます。一時的なセキュリティ認証情報を取得するには、AssumeRoleGetFederationToken などの AWS STSAPI オペレーションを呼び出します。

AWS DMSでは、一時的な認証情報の使用がサポートされています。

サービスリンクロール

サービスにリンクされたロールを使用すると、 AWSサービスは他の サービスのリソースにアクセスして、ユーザーに代わってアクションを実行できます。サービスリンクロールは IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスリンクロールの許可を表示できますが、編集することはできません。

AWS DMSサービスにリンクされたロールの作成または管理の詳細については、「」を参照してくださいサービスリンクロールの使用

サービス役割

この機能により、ユーザーに代わってサービスがサービスロールを引き受けることが許可されます。この役割により、サービスがお客様に代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービスロールはIAM アカウントに表示され、アカウントによって所有されます。つまり、IAM 管理者はこの役割の権限を変更できます。ただし、それにより、サービスの機能が損なわれる場合があります。

AWS DMSは、特定のソースエンドポイントまたはターゲットエンドポイントを使用するために作成する必要がある 2 種類のサービスロールをサポートします。

での IAM ロールの選択AWS DMS

データベース移行に DMS AWSコンソール、、AWS CLIまたは AWSDMS API を使用する場合は、AWSDMS の機能を使用する前に、AWSアカウントに特定の IAM ロールを追加する必要があります。これらのロールのうち 2 つは dms-vpc-roledms-cloudwatch-logs-role です。Amazon Redshift をターゲットデータベースとして使用する場合は、dms-access-for-endpointAWSアカウントに IAM ロールも追加する必要があります。詳細については、「で使用する IAM ロールの作成AWS DMS」を参照してください。

DMS Fleet Advisor のアイデンティティとアクセス管理

IAM のアイデンティティベースのポリシーを使用すると、許可または拒否されるアクションとリソース、さらにアクションが許可または拒否される条件を指定できます。DMS Fleet Advisor は、特定のアクション、リソース、条件キーをサポートします。JSON ポリシーで使用するすべての要素については「IAM ユーザーガイド」の「IAM JSON ポリシーエレメントのリファレンス」を参照してください。

DMS Fleet Advisor は、IAM ロールを使用して Amazon Simple Storage Service にアクセスします。IAM ロールは、特定のアクセス許可を持つAWSアカウント内のエンティティです。詳細については、「IAM リソースを作成する」を参照してください。