

# 説明される AWS Migration Hub 認証とアクセスコントロール
<a name="auth-and-access-explained"></a>

## AWS Migration Hub リソースへのアクセス許可の管理の概要
<a name="access-control-overview"></a>

すべての AWS リソースは AWS アカウントによって所有され、となり、リソースの作成またはアクセスは、アクセス権限のポリシーによって管理されます。アカウント管理者は、アクセス許可ポリシーを IAM ID （ユーザー、グループ、ロール）にアタッチし、アクセス許可ポリシーをリソースにアタッチすることもできます。

**注記**  
*アカウント管理者* (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、*IAM ユーザーガイド* の「[IAM のベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

アクセス権限を付与する場合、アクセス権限を取得するユーザー、取得するアクセス権限の対象となるリソース、およびそれらのリソースに対して許可される特定のアクションを決定します。

**Topics**
+ [AWS Migration Hub リソースおよびオペレーション](#access-control-resources)
+ [リソース所有権について](#access-control-resource-ownership)
+ [リソースへのアクセスの管理](#access-control-manage-access-intro)
+ [ポリシー要素の指定 : アクション、効果、プリンシパル](#specify-policy-elements)
+ [ポリシーでの条件の指定](#specifying-conditions)

### AWS Migration Hub リソースおよびオペレーション
<a name="access-control-resources"></a>



 AWS Migration Hub では、プライマリリソースは、Migration Hub *ProgressUpdateStream*です。 このリソースには、次の表に示すように、一意の Amazon リソースネーム (ARN) が関連付けられています。


****  

| リソースタイプ | ARN 形式  | 
| --- | --- | 
| ProgressUpdateStream |  arn:aws:mgh:*region*:*account-id*:ProgressUpdateStreamName:*resource-name*  | 

AWS Migration Hub には、Migration Hub リソースを操作するための一連のオペレーションが用意されています。使用可能なオペレーションのリストについては、「[Actions](API_Operations.md)」を参照してください。

### リソース所有権について
<a name="access-control-resource-ownership"></a>

*リソース所有者*は、リソースを作成した AWS アカウントです。つまり、リソース所有者は、リソースの作成リクエストを認証する*プリンシパルエンティティ* (ルートアカウント、IAM ユーザー、または IAM ロール) の AWS アカウントです。以下の例では、このしくみを示しています。
+ AWS アカウントのルートアカウント認証情報を使用して Migration Hub ProgressUpdateStream を作成する場合、AWS アカウントはリソースの所有者です（Migration Hub では、リソースは ProgressUpdateStream です）。
+ AWS アカウントに IAM ユーザーを作成し、Migration Hub ProgressUpdateStream を作成するためのアクセス許可をそのユーザーに付与した場合、そのユーザーは ProgressUpdateStream を作成できます。ただし、ユーザーが属する AWS アカウントは ProgressUpdateStream リソースを所有しています。
+ AWS アカウントに、Migration Hub ProgressUpdateStream を作成するためのアクセス許可を持つ IAM ロールを作成する場合は、ロールを引き受けることのできるいずれのユーザーも ProgressUpdateStream を作成できます。ユーザーが属する AWS アカウントは ProgressUpdateStream リソースを所有しています。

### リソースへのアクセスの管理
<a name="access-control-manage-access-intro"></a>

*アクセスポリシー*では、誰が何にアクセスできるかを記述します。以下のセクションで、アクセス権限のポリシーを作成するために使用可能なオプションについて説明します。

**注記**  
このセクションでは、AWS Migration Hub のコンテキストでの IAM の使用について説明します。これは、IAM サービスに関する詳細情報を取得できません。詳細な IAM ドキュメントについては、*IAM ユーザーガイド*の「[IAM とは](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)」を参照してください。IAM ポリシー構文の詳細および説明については、*IAM ユーザーガイド* の「[AWS IAM ポリシーリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)」を参照してください。

IAM アイデンティティにアタッチされたポリシーは*アイデンティティベース*のポリシー（IAM ポリシー）と呼ばれ、リソースにアタッチされたポリシーは*リソースベース*のポリシーと呼ばれます。AWS Migration Hub * はアイデンティティベースのポリシー（IAM ポリシー）をサポートしていません*。「[リソースベースのポリシー](#access-control-manage-access-resource-based)」を参照してください。

**Topics**
+ [アイデンティティベースのポリシー (IAM ポリシー)](#access-control-manage-access-identity-based)
+ [リソースベースのポリシー](#access-control-manage-access-resource-based)

#### アイデンティティベースのポリシー (IAM ポリシー)
<a name="access-control-manage-access-identity-based"></a>

ポリシーを IAM アイデンティティにアタッチできます。たとえば、次の操作を実行できます。 
+ **アカウントのユーザーまたはグループにアクセス許可ポリシーをアタッチする** – アカウント管理者は、特定のユーザーに関連付けられるアクセス許可ポリシーを使用して、そのユーザーに Migration Hub リソースを作成するアクセス許可を付与することができます。
+ **アクセス権限ポリシーをロールにアタッチする (クロスアカウントのアクセス権限を付与)** – アイデンティティベースのアクセス権限ポリシーを IAM ロールにアタッチして、クロスアカウントのアクセス権限を付与することができます。たとえば、アカウント A の管理者は、次のように他のまたは AWS にクロスアカウントのアクセス権限を別の AWS アカウント (アカウント B) または AWS サービスに付与するロールを作成することができます。

  1. アカウント A の管理者は、IAM ロールを作成して、アカウント A のリソースに権限を付与するロールに権限ポリシーをアタッチします。

  1. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別するロールに、信頼ポリシーをアタッチします。

  1. アカウント B の管理者は、アカウント B のユーザーにロールを引き受ける権限を委任できるようになります。これにより、アカウント B のユーザーにアカウント A のリソースの作成とアクセスが許可されます。AWS サービスのアクセス権限を付与してロールを引き受けさせたい場合は、信頼ポリシー内のプリンシパルも、AWS サービスのプリンシパルとなることができます。

   IAM を使用したアクセス許可の委任の詳細については、[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) の「*アクセス管理*」を参照してください。

すべてのリソースの Migration Hub アクション `mgh:NotifyMigrationTaskState` のアクセス許可を付与するポリシーの例を次に示します。

```
{
  "Version": "2017-03-31",
  "Statement": {
    "Effect": "Allow",
    "Action":[
      "mgh:NotifyMigrationTaskState"
    ],
    "Resource": "*"
      
  }
}
```

Migration Hub でアイデンティティベースのポリシーを使用する方法の詳細については、「[AWS Migration Hub でアイデンティティベースのポリシー（IAM ポリシー）を使用する](#access-control-identity-based)」を参照してください。ユーザー、グループ、ロール、アクセス権限の詳細については、*IAM ユーザーガイド* の「[アイデンティティ (ユーザー、グループ、ロール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)」を参照してください。

#### リソースベースのポリシー
<a name="access-control-manage-access-resource-based"></a>

Amazon S3 などの他のサービスでは、リソースベースのアクセス権限ポリシーもサポートされています。たとえば、ポリシーを S3 バケットにアタッチして、そのバケットに対するアクセス許可を管理できます。Migration Hub はリソースベースのポリシーをサポートしていません。ただし、リソースへの参照は引き続き表示されることに注意してください。これが、* リソースベース*のアクセス許可と*リソースレベル*のアクセス許可には違いがある理由です。

リソースベースのアクセス許可は、リソースに直接アタッチするアクセス許可です。一方、リソースレベルのアクセス許可は、ユーザーまたはロールがアクションを実行できるリソースを ID ベースのアクセス許可内で指定するだけです。したがって、Migration Hub アクセス許可についてリソースへの参照が作成されると、*リソースレベルの* アクセス許可のこのコンテキスト内になります。

### ポリシー要素の指定 : アクション、効果、プリンシパル
<a name="specify-policy-elements"></a>

サービスは、Migration Hub リソースごとに一連の API オペレーションを定義します。こうした API オペレーションへのアクセス許可を付与するために、Migration Hub は一連のアクションをポリシーに定義します。一部の API オペレーションは、API オペレーションを実行するために複数のアクションに対するアクセス許可を要求できます。リソースおよび API オペレーションに関する詳細については、「[AWS Migration Hub リソースおよびオペレーション](#access-control-resources)」および「Migration Hub [Actions](API_Operations.md)」を参照してください。

以下は、最も基本的なポリシーの要素です。
+ **リソース** – Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。詳細については、「[AWS Migration Hub リソースおよびオペレーション](#access-control-resources)」を参照してください。
+ **アクション** – アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識別します。たとえば、`mgh:AssociateDiscoveredResource` を使用して、ユーザーのアクセス許可に Migration Hub `AssociateDiscoveredResource` オペレーションの実行を許可できます。
+ **効果** – ユーザーが特定のアクションをリクエストする際の効果 (許可または拒否) を指定します。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。
+ **プリンシパル** – アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、アクセス許可（リソースベースのポリシーにのみ適用）を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。Migration Hub では、リソースベースのポリシーはサポートされていません。

IAM ポリシーの構文と説明についての詳細については、*IAM ユーザーガイド* の「[AWS IAM ポリシーリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)」を参照してください。

すべての AWS Migration Hub API アクションとそれらが適用されるリソースの表については、「[AWS Migration Hub API のアクセス許可: アクションとリソースのリファレンス](migrationhub-api-permissions-ref.md)」を参照してください。





### ポリシーでの条件の指定
<a name="specifying-conditions"></a>

アクセス権限を付与するとき、IAM ポリシー言語を使用して、ポリシーが有効になる必要がある条件を指定できます。たとえば、特定の日付の後にのみ適用されるポリシーが必要になる場合があります。ポリシー言語での条件の指定の詳細については、*IAM ユーザーガイド*の「[条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition)」を参照してください。

条件を表すには、あらかじめ定義された条件キーを使用します。Migration Hub に固有の条件キーはありません。ただし、AWS 全体の条件キーがあり、必要に応じて使用できます。AWS 全体を対象とするすべてのキーのリストについては、『*IAM ユーザーガイド*』の「[条件に利用可能なキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)」を参照してください。

## AWS Migration Hub でアイデンティティベースのポリシー（IAM ポリシー）を使用する
<a name="access-control-identity-based"></a>

このトピックでは、アカウント管理者が IAM アイデンティティ（ユーザー、グループ、ロール）へのアクセス許可ポリシーをアタッチする、アイデンティティベースのポリシーについて説明します。

**重要**  
 初めに、AWS Migration Hub リソースへのアクセスを管理するための基本概念と使用可能なオプションについて説明する概要トピックをお読みになることをお勧めします。詳細については、「[AWS Migration Hub リソースへのアクセス許可の管理の概要](#access-control-overview)」を参照してください。

このセクションでは、次のトピックを対象としています。
+ [AWS Migration Hub コンソールおよび API を使用するために必要なアクセス許可](#console-required-permissions) 
+ [AWS Migration Hub での AWS マネージド（事前定義）ポリシー](#access-policy-examples-aws-managed) 
+ [AWS Migration Hub 信頼ポリシー](#access-policy-examples-aws-trust) 



以下に示しているのは、アクセス権限ポリシーの例です。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "mgh:AssociateCreatedArtifact",
                "mgh:NotifyApplicationState",
                "mgh:ListDiscoveredResources"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:mgh:us-west-2:account_num:ProgressUpdateStreamName/DMS/*"
        }
    ]
}
```

次に、移行ツールを承認する信頼ポリシーを定義する必要があります。この例では、AWS Database Migration Service (DMS) がロールを引き受けます。

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "dms.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

このポリシーは、アクセス許可ポリシーと信頼ポリシーの 2 つの部分に実装されます。 
+ アクセス許可ポリシーは、AWS DMS 移行ツールの Amazon リソースネーム (ARN) で識別されるすべてのリソースに対する Migration Hub アクション（`mgh:AssociateCreatedArtifact`、`mgh:NotifyApplicationState`、および `mgh:ListDiscoveredResources`）のアクセス許可を付与します。リソース名の最後に指定されているワイルドカード文字 (\$1) は、移行ツールが特定の ProgressUpdateStream 名で作成する移行タスクに対して動作できることを意味します。
+ 信頼ポリシーは、AWS DMS 移行ツールがロールのアクセス許可ポリシーを引き受けることを承認します。Migration Hub ポリシーには、常に信頼ポリシーが関連付けられている必要があります。

すべての AWS Migration Hub API アクションとそれらが適用されるリソースと条件の表については、「[AWS Migration Hub API のアクセス許可: アクションとリソースのリファレンス](migrationhub-api-permissions-ref.md)」を参照してください。

### AWS Migration Hub コンソールおよび API を使用するために必要なアクセス許可
<a name="console-required-permissions"></a>

AWS Migration Hub コンソールは、ユーザーと API が Migration Hub リソースを作成し、移行を管理するための統合環境を提供します。コンソールには、アクセスするために特定のアクセス許可を必要とする多くの機能とワークフローが用意されています。これらのアクセス許可を実装する最善の方法は、マネージドポリシーを使用することです。「[コンソールと API マネージドアクセス](new-customer-setup.md#api-console-access-managed)」を参照してください。

また、「[AWS Migration Hub API のアクセス許可: アクションとリソースのリファレンス](migrationhub-api-permissions-ref.md)」で説明されている API 固有のアクセス許可もあります。

#### AWS Migration Hub での AWS マネージド（事前定義）ポリシー
<a name="access-policy-examples-aws-managed"></a>

AWS は、AWS によって作成され管理されるスタンドアロンの IAM ポリシーが提供する多くの一般的ユースケースに対応します。これらの AWS マネージドポリシーは、一般的ユースケースに必要なアクセス許可を付与することで、どの権限が必要なのかをユーザーが調査する必要をなくすことができます。

アカウントのユーザーにアタッチ可能な以下の AWS マネージドポリシーは、Migration Hub に固有のもので、ユースケースシナリオ別にグループ化されます。
+ **AWSMigrationHubDiscoveryAccess** – Migration Hub サービスによる Application Discovery Service 呼び出しを許可するアクセス許可を付与します。
+ **AWSMigrationHubFullAccess** – 管理者以外のユーザーに対して、Migration Hub コンソールおよび API/CLI へのアクセス権を付与します。
+ **AWSMigrationHubSMSAccess** – Migration Hub が AWS Server Migration Service 移行ツールからの通知を受信するためのアクセス許可を付与します。
+ **AWSMigrationHubDMSAccess** – Migration Hub が AWS Database Migration Service 移行ツールから通知を受信するためのアクセス許可を付与します。

**注記**  
IAM コンソールにサインインし、これらの特定のポリシーを検索することで、これらのアクセス許可ポリシーを確認することができます。

独自のカスタム IAM ポリシーを作成して、Migration Hub のアクションとリソースのためのアクセス許可を許可することもできます。こうしたカスタムポリシーは、該当するアクセス権限が必要な IAM ユーザーまたはグループにアタッチできます。

### AWS Migration Hub 信頼ポリシー
<a name="access-policy-examples-aws-trust"></a>

信頼ポリシーは、プリンシパルがロールのアクセス許可ポリシーを引き受けるか、使用することを承認するだけです。AWS アカウント（「ルート」ユーザー）、IAM ユーザー、またはロールをプリンシパルにすることができます。Migration Hub では、信頼ポリシーをアクセス許可ポリシーに手動で追加する必要があります。

したがって、IAM ロールごとに 2 つの個別のポリシーを作成する必要があります。
+ アクセス許可ポリシーは、プリンシパルが使用できるアクションとリソースを定義します。
+ 信頼ポリシーでは、誰がロールを引き受けることができるかを指定します（信頼されたエンティティまたはプリンシパル）。