翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
の ID とアクセスの管理AWS Database Migration Service
AWS Identity and Access Management(IAM) は、管理者が AWSリソースへのアクセスを安全に制御AWS のサービスするのに役立つ です。IAM 管理者は、誰を認証 (サインイン) し、誰にAWS DMSリソースの使用を許可する (アクセス許可を付与する) かを制御します。IAM は、追加料金なしで使用できる AWS のサービスです。
トピック
オーディエンス
AWS Identity and Access Management(IAM) の使用方法は、ロールによって異なります。
-
サービスユーザー - 機能にアクセスできない場合は、管理者にアクセス許可をリクエストします (「AWS Database Migration ServiceID とアクセスのトラブルシューティング」を参照)
-
サービス管理者 - ユーザーアクセスを決定し、アクセス許可リクエストを送信します (「が IAM とAWS Database Migration Service連携する方法」を参照)
-
IAM 管理者 - アクセスを管理するためのポリシーを作成します (「AWS Database Migration Serviceアイデンティティベースのポリシーの例」を参照)
アイデンティティを使用した認証
認証は、ID 認証情報AWSを使用して にサインインする方法です。、IAM ユーザーAWS アカウントのルートユーザー、または IAM ロールを引き受けることで認証される必要があります。
AWS IAM アイデンティティセンター(IAM Identity Center)、シングルサインオン認証、Google/Facebook 認証情報などの ID ソースからの認証情報を使用して、フェデレーティッド ID としてサインインできます。サインインの詳細については、「AWS サインインユーザーガイド」の「AWS アカウントへのサインイン方法」を参照してください。
プログラムによるアクセスの場合、 は SDK と CLI AWSを提供してリクエストを暗号化して署名します。詳細については、「IAM ユーザーガイド」の「API リクエストに対する AWS 署名バージョン 4」を参照してください。
AWS アカウントルートユーザー
を作成するときはAWS アカウント、すべての AWS のサービスおよび リソースへの完全なアクセス権を持つ AWS アカウントroot ユーザーと呼ばれる 1 つのサインインアイデンティティから始めます。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザー認証情報を必要とするタスクについては、「IAM ユーザーガイド」の「ルートユーザー認証情報が必要なタスク」を参照してください。
IAM ユーザーとグループ
IAM ユーザーは、特定の個人やアプリケーションに対する特定のアクセス許可を持つアイデンティティです。長期認証情報を持つ IAM ユーザーの代わりに一時的な認証情報を使用することをお勧めします。詳細については、IAM ユーザーガイドの「ID プロバイダーとのフェデレーションを使用して にアクセスすることを人間のユーザーに要求するAWS」を参照してください。
IAM グループは、IAM ユーザーの集合を指定し、大量のユーザーに対するアクセス許可の管理を容易にします。詳細については、「IAM ユーザーガイド」の「IAM ユーザーに関するユースケース」を参照してください。
IAM ロール
IAM ロールは、特定のアクセス許可を持つアイデンティであり、一時的な認証情報を提供します。ユーザーから IAM ロール (コンソール) に切り替えるか、 または API オペレーションを呼び出すことで、ロールを引き受けることができます。AWS CLIAWS詳細については、「IAM ユーザーガイド」の「ロールを引き受けるための各種方法」を参照してください。
IAM ロールは、フェデレーションユーザーアクセス、一時的な IAM ユーザーのアクセス許可、クロスアカウントアクセス、クロスサービスアクセス、および Amazon EC2 で実行するアプリケーションに役立ちます。詳細については、IAM ユーザーガイド の IAM でのクロスアカウントリソースアクセス を参照してください。
ポリシーを使用したアクセスの管理
でアクセスを制御するAWSには、ポリシーを作成し、ID AWSまたはリソースにアタッチします。ポリシーは、アイデンティティまたはリソースに関連付けられたときにアクセス許可を定義します。 は、プリンシパルがリクエストを行うときにこれらのポリシーAWSを評価します。ほとんどのポリシーは JSON ドキュメントAWSとして に保存されます。JSON ポリシードキュメントの詳細については、「IAM ユーザーガイド」の「JSON ポリシー概要」を参照してください。
管理者は、ポリシーを使用して、どのプリンシパルがどのリソースに対して、どのような条件でアクションを実行できるかを定義することで、誰が何にアクセスできるかを指定します。
デフォルトでは、ユーザーやロールにアクセス許可はありません。IAM 管理者は IAM ポリシーを作成してロールに追加し、このロールをユーザーが引き受けられるようにします。IAM ポリシーは、オペレーションの実行方法を問わず、アクセス許可を定義します。
アイデンティティベースのポリシー
アイデンティティベースのポリシーは、アイデンティティ (ユーザー、グループ、またはロール) にアタッチできる JSON アクセス許可ポリシードキュメントです。これらのポリシーは、アイデンティティがどのリソースに対してどのような条件下でどのようなアクションを実行できるかを制御します。アイデンティティベースポリシーの作成方法については、IAM ユーザーガイド の カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する を参照してください。
アイデンティティベースのポリシーは、インラインポリシー (単一のアイデンティティに直接埋め込む) または管理ポリシー (複数のアイデンティティにアタッチされたスタンドアロンポリシー) にすることができます。管理ポリシーとインラインポリシーのいずれかを選択する方法については、「IAM ユーザーガイド」の「管理ポリシーとインラインポリシーのいずれかを選択する」を参照してください。
リソースベースのポリシー
リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。例としては、IAM ロール信頼ポリシーや Amazon S3 バケットポリシーなどがあります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。
リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーでは、IAM の AWSマネージドポリシーを使用できません。
アクセスコントロールリスト (ACL)
アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするためのアクセス許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。
Amazon S3、および Amazon VPC はAWS WAF、ACLs。ACL の詳細については、Amazon Simple Storage Service デベロッパーガイド の アクセスコントロールリスト (ACL) の概要 を参照してください。
その他のポリシータイプ
AWSは、より一般的なポリシータイプによって付与されるアクセス許可の最大数を設定できる追加のポリシータイプをサポートしています。
-
アクセス許可の境界 – アイデンティティベースのポリシーで IAM エンティティに付与することのできるアクセス許可の数の上限を設定します。詳細については、「IAM ユーザーガイド」の「IAM エンティティのアクセス許可境界」を参照してください。
-
サービスコントロールポリシー (SCP) - AWS Organizations 内の組織または組織単位の最大のアクセス許可を指定します。詳細については、「AWS Organizations ユーザーガイド」の「サービスコントロールポリシー」を参照してください。
-
リソースコントロールポリシー (RCP) – アカウント内のリソースで利用できるアクセス許可の数の上限を定義します。詳細については、「AWS Organizations ユーザーガイド」の「リソースコントロールポリシー (RCP)」を参照してください。
-
セッションポリシー - ロールまたはフェデレーションユーザーの一時セッションの作成時にパラメータとして渡す高度なポリシーです。詳細については、「IAM ユーザーガイド」の「セッションポリシー」を参照してください。
複数のポリシータイプ
1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成されるアクセス許可を理解するのがさらに難しくなります。が複数のポリシータイプが関与する場合にリクエストを許可するかどうかAWSを決定する方法については、「IAM ユーザーガイド」の「ポリシー評価ロジック」を参照してください。
AWS DMS の使用に必要な IAM アクセス許可
AWS DMS を使用するには、特定の IAM アクセス許可と IAM ロールを使用します。IAM ユーザーとしてサインインしていて を使用する場合AWS DMS、アカウント管理者は、このセクションで説明するポリシーを実行に使用する IAM ユーザー、グループ、またはロールにアタッチする必要がありますAWS DMS。IAM アクセス許可の詳細については、『IAM ユーザーガイド』をご参照ください。
次のポリシーでは、IAMAWS DMS、Amazon EC2AWS KMS、Amazon CloudWatch などの他の Amazon サービスから必要な特定のアクションへのアクセスとアクセス許可を付与します。 Amazon EC2 CloudWatch はAWS DMS移行をリアルタイムでモニタリングし、移行の進行状況を示すメトリクスを収集して追跡します。CloudWatch ログを使用すると、タスクの問題をデバッグできます。
注記
タグ付けを使用してAWS DMSリソースへのアクセスをさらに制限できます。タグ付けを使用してAWS DMSリソースへのアクセスを制限する方法の詳細については、「」を参照してくださいリソース名とタグを使用したファイングレインアクセスコントロール。
これらの以下のアクセス許可明細は、それぞれのアクセス許可が必要な理由を理解するうえで役立ちます。
ユーザーが AWS DMSAPI オペレーションを呼び出せるようにするには、次のセクションが必要です。
{ "Effect": "Allow", "Action": "dms:*", "Resource": "arn:aws:dms:region:account:resourcetype/id" }
次のセクションは、コンソールで表示するために使用可能なAWS KMSキーとエイリアスをユーザーが一覧表示できるようにするために必要です。このエントリは、KMS キーの Amazon リソースネーム (ARN) がわかっていてAWS Command Line Interface、() のみを使用している場合は必要ありませんAWS CLI。
{ "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }
次のセクションは、エンドポイントとともに IAM ロールの ARN を渡す必要がある特定のエンドポイントタイプに必要になります。さらに、必要なAWS DMSロールが事前に作成されていない場合、AWS DMSコンソールでロールを作成できます。すべてのロールが事前に設定されている場合、必要なものは iam:GetRole および iam:PassRole のみです。ロールの詳細については、「で使用する IAM ロールの作成AWS DMS」をご参照ください。
{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }
は Amazon EC2 インスタンスを作成し、作成されたレプリケーションインスタンスのネットワークを設定するAWS DMS必要があるため、次のセクションは必須です。これらのリソースはお客様のアカウント内に存在するため、お客様に代わってこれらのアクションを実行できる必要があります。
{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }
次のセクションは、ユーザーがレプリケーション インスタンスのメトリクスを表示することを許可するために必要です。
{ "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }
このセクションは、ユーザーがレプリケーションログを表示することを許可するために必要です。
{ "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }
移行に AWS DMSコンソール、 AWS Command Line Interface(AWS CLI)、または AWS DMSAPI を使用する場合は、アカウントに複数のロールを追加する必要があります。これらのロールの追加についての詳細は、「で使用する IAM ロールの作成AWS DMS」をご参照ください。
で使用する IAM ロールの作成AWS DMS
データベース移行に AWS DMSコンソール、、AWS CLIまたは AWS DMSAPI を使用する場合は、 の機能を使用する前に、AWSアカウントに 3 つの IAM ロールを追加する必要がありますAWS DMS。これらのロールのうち 2 つは dms-vpc-role と dms-cloudwatch-logs-role です。Amazon Redshift をターゲットデータベースとして使用する場合は、dms-access-for-endpointAWSアカウントに IAM ロールも追加する必要があります。
管理ポリシーの更新は自動です。IAM ロールでカスタムポリシーを使用する場合、このドキュメントで管理ポリシーの更新事項がないか定期的に確認してください。管理ポリシーの詳細は、get-policy コマンドと get-policy-version コマンドを組み合わせて使用して表示できます。
たとえば、次の get-policy コマンドは、指定された IAM ロールに関する情報を取得します。
aws iam get-policy --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole
コマンドから返される情報は、次のとおりです。
{ "Policy": { "PolicyName": "AmazonDMSVPCManagementRole", "PolicyId": "ANPAJHKIGMBQI4AEFFSYO", "Arn": "arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole", "Path": "/service-role/", "DefaultVersionId": "v4", "AttachmentCount": 1, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "Description": "Provides access to manage VPC settings for AWS managed customer configurations", "CreateDate": "2015-11-18T16:33:19+00:00", "UpdateDate": "2024-07-25T15:19:01+00:00", "Tags": [] } }
次の get-policy-version コマンドは、IAM ポリシー情報を取得します。
aws iam get-policy-version --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole --version-id v4
コマンドから返される情報は、次のとおりです。
同じコマンドを使用して、AmazonDMSRedshiftS3Role および AmazonDMSCloudWatchLogsRole 管理ポリシーに関する情報を取得できます。
次の手順では、dms-vpc-role、dms-cloudwatch-logs-role、および dms-access-for-endpoint の各 IAM ロールを作成します。
AWS CLIまたは AWS DMSAPI で使用する dms-vpc-role IAM ロールを作成するには
-
次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに
dmsAssumeRolePolicyDocument.jsonという名前を付けます。次のコマンドを使用して、 AWS CLIを使用してロールを作成します。
aws iam create-role --role-name dms-vpc-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument.json -
次のコマンドを使用して
AmazonDMSVPCManagementRoleポリシーをdms-vpc-roleにアタッチします。aws iam attach-role-policy --role-name dms-vpc-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole
AWS CLIまたは AWS DMSAPI で使用する dms-cloudwatch-logs-role IAM ロールを作成するには
-
次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに
dmsAssumeRolePolicyDocument2.jsonという名前を付けます。次のコマンドを使用して、 AWS CLIを使用してロールを作成します。
aws iam create-role --role-name dms-cloudwatch-logs-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument2.json -
次のコマンドを使用して
AmazonDMSCloudWatchLogsRoleポリシーをdms-cloudwatch-logs-roleにアタッチします。aws iam attach-role-policy --role-name dms-cloudwatch-logs-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole
Amazon Redshift をターゲットデータベースとして使用する場合は、IAM ロール dms-access-for-endpoint を作成して Amazon S3 へのアクセスを可能にする必要があります。
ターゲット データベースとしての Amazon Redshift で使用する IAM ロール dms-access-for-endpoint を作成するには
-
次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに
dmsAssumeRolePolicyDocument3.jsonという名前を付けます。 -
次のコマンドを使用して、 AWS CLIを使用してロールを作成します。
aws iam create-role --role-name dms-access-for-endpoint --assume-role-policy-document file://dmsAssumeRolePolicyDocument3.json -
次のコマンドを使用して
AmazonDMSRedshiftS3Roleポリシーをdms-access-for-endpointロールにアタッチします。aws iam attach-role-policy --role-name dms-access-for-endpoint \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSRedshiftS3Role
これで、 AWS CLIまたはAWS DMS API を使用するための IAM ポリシーが設定されました。