

AWS Migration Hub Refactor Spaces はプレビューリリースであり、変更される可能性があります。

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

# AWS Migration Hub リファクタリングスペースのIdentity and Access Management
<a name="security-iam"></a>





AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全にコントロールするために役立つ AWS のサービスです。IAM 管理者は、誰にできるかを制御する*認証済み*(サインイン) と*認可*(権限を持つ) スペースのリファクタリングリソースを使用します。IAM は、AWSのサービスで追加料金は発生しません。

**Topics**
+ [Audience](#security_iam_audience)
+ [アイデンティティを使用した認証](#security_iam_authentication)
+ [ポリシーを使用したアクセスの管理](#security_iam_access-manage)
+ [AWS Migration Hub ファクタリングスペースと IAM のしくみ](security_iam_service-with-iam.md)
+ [AWSAWS Migration Hub のリファクタリングスペースの管理ポリシー](security-iam-awsmanpol.md)
+ [AWS Migration Hub リファクタリングスペースのアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md)
+ [AWS Migration Hub ファクタリングスペースのトラブルシューティング ID とアクセス](security_iam_troubleshoot.md)
+ [リファクタリングスペースでのサービスにリンクされたロールの使用](using-service-linked-roles.md)

## Audience
<a name="security_iam_audience"></a>

でを使用する方法AWS Identity and Access Management(IAM) は、リファクタリングスペースで行う作業によって異なります。

**サービスユーザー**— リファクタリングスペースサービスを使用してジョブを実行する場合は、管理者が必要なアクセス許可と認証情報を用意します。作業を実行するためにさらに多くのリファクタリングスペース機能を使用するとき、追加のアクセス許可が必要になる場合があります。アクセスの管理方法を理解すると、管理者から適切な許可をリクエストするのに役に立ちます。リファクタリングスペースの機能にアクセスできない場合は、を参照してください。[AWS Migration Hub ファクタリングスペースのトラブルシューティング ID とアクセス](security_iam_troubleshoot.md)。

**サービス管理者**— 社内でリファクタリングスペースリソースを担当している場合は、おそらくリファクタリングスペースへのフルアクセスがあります。従業員がどのリファクタリングスペース機能およびリソースにアクセスする必要があるかを決定するのは管理者の仕事です。その後、IAM 管理者にリクエストを送信して、サービスユーザーの許可を変更する必要があります。このページの情報を確認して、IAM の基本概念を理解してください。会社でリファクタリングスペースで IAM を利用する方法の詳細については、を参照してください。[AWS Migration Hub ファクタリングスペースと IAM のしくみ](security_iam_service-with-iam.md)。

**IAM 管理者**— IAM 管理者の場合は、リファクタリングスペースへのアクセスを管理するポリシーの作成方法の詳細について確認する場合があります。IAM で使用できるリファクタリングスペース ID ベースのポリシーの例を表示するには、を参照してください。[AWS Migration Hub リファクタリングスペースのアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md)。

## アイデンティティを使用した認証
<a name="security_iam_authentication"></a>

認証は、アイデンティティ認証情報を使用して AWS にサインインする方法です。AWS マネジメントコンソールを使用したサインインの詳細については、*IAM ユーザーガイド*の「[IAM ユーザーまたはルートユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/console.html)としての AWS マネジメントコンソール へのサインイン」を参照してください。

AWS アカウントのルートユーザーもしくは IAM ユーザーとして、または IAM ロールを引き受けることによって、*認証を受ける* (AWS にサインインする) 必要があります。会社のシングルサインオン認証を使用することも、Google や Facebook を使用してサインインすることもできます。このような場合、管理者は以前に IAM ロールを使用して ID フェデレーションを設定しました。他の会社の認証情報を使用して AWS にアクセスした場合、ロールを間接的に割り当てられています。

[AWS マネジメントコンソール](https://console.aws.amazon.com/)に直接サインインするには、パスワードとルートユーザーのEメールまたは IAM ユーザー名を使用します。ルートユーザーまたは IAM ユーザーのアクセスキーを使用して AWS にプログラム的にアクセスできます。AWS は、ユーザーの認証情報を使用してリクエストに暗号的で署名するための SDK とコマンドラインツールを提供します。AWS ツールを使用しない場合は、リクエストに自分で署名する必要があります。これには、インバウンド API リクエストを認証するためのプロトコル、*署名バージョン 4* を使用します。リクエストの認証の詳細については、「*AWS の全般リファレンス*」の「[署名バージョン 4 の署名プロセス](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)」を参照してください。

使用する認証方法を問わず、追加のセキュリティ情報の提供を要求される場合もあります。たとえば、AWS では多要素認証 (MFA) を使用してアカウントのセキュリティを高めることを推奨しています。詳細については、*IAM ユーザーガイドの*「AWSでの多要素認証 (MFA)の使用」を参照してください。

### AWS アカウント ルートユーザー
<a name="security_iam_authentication-rootuser"></a>

 AWS アカウントを初めて作成する場合は、このアカウントのすべての AWS サービスとリソースに対して完全なアクセス権限を持つシングルサインインアイデンティティで始めます。このアイデンティティは AWS アカウント *ルートユーザー*と呼ばれ、アカウントの作成に使用した E メールアドレスとパスワードでサインインすることによってアクセスできます。強くお勧めするのは、日常的なタスクには、それが管理者タスクであっても、ルートユーザーを使用しないことです。代わりに、[最初の IAM ユーザーを作成するためにのみ、ルートユーザーを使用するというベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users)に従います。その後、ルートユーザーの認証情報を安全な場所に保管し、それらを使用して少数のアカウントおよびサービス管理タスクのみを実行します。

### IAM ユーザーとグループ
<a name="security_iam_authentication-iamuser"></a>

*[IAM ユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*は、単一のユーザーまたはアプリケーションに対する特定の許可を持つAWS アカウント内のアイデンティティです。IAM ユーザーは、ユーザー名とパスワード、アクセスキーのセットなど、長期的な認証情報を持つことができます。アクセスキーの生成方法の詳細については、*IAM ユーザーガイド*の「[IAM ユーザーのアクセスキーの管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)」を参照してください。IAM ユーザーにアクセスキーを生成するとき、必ずキーペアを表示して安全に保存してください。後になって、シークレットアクセスキーを回復することはできません。新しいアクセスキーペアを生成する必要があります。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)は、IAM ユーザーのコレクションを指定するアイデンティティです。グループとしてサインインすることはできません。グループを使用して、一度に複数のユーザーに対してアクセス許可を指定できます。多数の組のユーザーがある場合、グループを使用すると管理が容易になります。例えば、*IAMAdmins*という名前のグループを設定して、そのグループに IAM リソースを管理するアクセス許可を与えることができます。

ユーザーは、ロールとは異なります。ユーザーは 1 人の特定の人またはアプリケーションに一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。ユーザーには永続的な長期の認証情報がありますが、ロールでは一時的な認証情報が利用できます。詳細については、*IAM ユーザーガイド*の「[IAM ユーザーの作成が適している場合 (ロールではなく)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose)」を参照してください。

### IAM ロール
<a name="security_iam_authentication-iamrole"></a>

*[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*は、特定のアクセス許可を持つ、AWS アカウント内のアイデンティティです。これは IAM ユーザーに似ていますが、特定のユーザーには関連付けられていません。[ロールを切り替える](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)ことによって、AWS マネジメントコンソールで IAM ロールを一時的に引き受けることができます。ロールを引き受けるには、AWS CLI または AWS API オペレーションを呼び出すか、カスタム URL を使用します。ロールを使用する方法の詳細については、*IAM ユーザーガイド*の [IAM ロールの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)を参照してください。

IAM ロールと一時的な認証情報は、次の状況で役立ちます。
+ **一時的な IAM ユーザーアクセス許可** – IAM ユーザーは、特定のタスクに対して複数の異なるアクセス許可を一時的に IAM ロールで引き受けることができます。
+ **フェデレーティッドユーザーアクセス** – IAM ユーザーを作成する代わりに、Directory Service、エンタープライズユーザーディレクトリー、またはウェブ ID プロバイダーからの既存のアイデンティティを使用できます。このようなユーザーは*フェデレーティッドユーザー*と呼ばれます。AWS では、[ID プロバイダー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)を通じてアクセスがリクエストされたとき、フェデレーティッドユーザーにロールを割り当てます。フェデレーティッドユーザーの詳細については、[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html#intro-access-roles)の*フェデレーティッドユーザーとロール*を参照してください。
+ **クロスアカウントアクセス** – IAM ロールを使用して、自分のアカウントのリソースにアクセスすることを別のアカウントの人物 (信頼済みプリンシパル) に許可できます。ロールは、クロスアカウントアクセスを許可する主な方法です。ただし、一部の AWS のサービスでは、(ロールをプロキシとして使用する代わりに) リソースにポリシーを直接アタッチできます。クロスアカウントアクセスでのロールとリソースベースのポリシーの違いの詳細については、*IAM ユーザーガイド*の [IAM ロールとリソースベースのポリシーとの相違点](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)を参照してください。
+ **クロスサービスアクセス** – 一部の AWS のサービスは、AWSの他のサービスの機能を使用します。例えば、サービスで呼び出しを行う場合、そのサービスでは Amazon EC2 でアプリケーションを実行したり、Amazon S3 にオブジェクトを保存したりするのが一般的です。サービスは、呼び出し元プリンシパルのアクセス許可、サービスロール、またはサービスリンクロールを使用してこれを行う場合があります。
  + **プリンシパル許可** – IAM ユーザーまたはロールを使用して AWSでアクションを実行する場合、そのユーザーはプリンシパルとみなされます。ポリシーは、プリンシパルにアクセス許可を付与します。一部のサービスを使用する場合、別のサービスで別のアクションをトリガーするアクションを実行することがあります。この場合、両方のアクションを実行するための許可が必要です。アクションがポリシーで追加の依存アクションを必要とするかどうかを確認するには、を参照してください。[AWS Migration Hub リファクタリングスペースのアクション、リソース、および条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awskeymanagementservice.html)の*サービス認証リファレンス*。
  + **サービスロール** – サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、*IAM ユーザーガイド*の「AWSのサービスにアクセス権限を委任するロールの作成」を参照してください。
  + **サービスリンクロール** – サービスリンクロールは、AWSのサービスにリンクされたサービスロールの一種です。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは、IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスリンクロールのアクセス許可を表示できますが、編集することはできません。
+ **Amazon EC2 で実行されているアプリケーション** – EC2 インスタンスで実行され、AWS CLI または AWS API リクエストを作成しているアプリケーションのために一時的な認証情報を管理するには、IAM ロールが使用できます。これは、EC2 インスタンス内でのアクセスキーの保存に推奨されます。AWS ロールを EC2 インスタンスに割り当て、そのすべてのアプリケーションで使用できるようにするには、インスタンスに添付されたインスタンスプロファイルを作成します。インスタンスプロファイルにはロールが含まれ、EC2 インスタンスで実行されるプログラムは一時認証情報を取得することができます。詳細については、*IAM ユーザーガイド*の「[Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス許可を付与する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)」を参照してください。

IAM ロールを使用するか IAM ユーザーを使用するかどうかについては、*IAM ユーザーガイド*の [（IAMユーザーではなく、）IAM ロールをいつ作成したら良いのか?](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose_role)」を参照してください。

## ポリシーを使用したアクセスの管理
<a name="security_iam_access-manage"></a>

AWS でのアクセスは、ポリシーを作成し、それらを IAM アイデンティティまたは AWS リソースにアタッチすることで制御できます。ポリシーは AWS のオブジェクトであり、ID やリソースに関連付けて、これらのアクセス許可を定義します。ルートユーザーまたは IAM ユーザーとしてサインインすることも、IAM ロールを引き受けることもできます。その後リクエストを行うと、AWS が関連するアイデンティティベースまたはリソースベースのポリシーを評価します。ポリシーでのアクセス許可により、リクエストが許可されるか拒否されるかが決まります。大半のポリシーは JSON ドキュメントとして AWS に保存されます。JSON ポリシードキュメントの構造と内容の詳細については、*IAM ユーザーガイド*の [JSON ポリシー概要](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)を参照してください。

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

すべての IAM エンティティ (ユーザーまたはロール) は、アクセス許可のない状態からスタートします。言い換えると、デフォルト設定では、ユーザーは何もできず、自分のパスワードを変更することすらできません。何かを実行するアクセス許可をユーザーに付与するには、管理者がユーザーにアクセス許可ポリシーをアタッチする必要があります。また、管理者は、必要なアクセス許可があるグループにユーザーを追加できます。管理者がグループにアクセス許可を付与すると、そのグループ内のすべてのユーザーにこれらのアクセス許可が付与されます。

IAM ポリシーは、オペレーションの実行方法を問わず、アクションのアクセス許可を定義します。例えば、`iam:GetRole` アクションを許可するポリシーがあるとします。このポリシーがあるユーザーは、AWS マネジメントコンソール、AWS CLI、または AWS API からロールの情報を取得できます。

### アイデンティティベースポリシー
<a name="security_iam_access-manage-id-based-policies"></a>

アイデンティティベースポリシーは、IAM user ユーザー、ユーザーのグループ、ロールなど、アイデンティティにアタッチできる JSON アクセス許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件を制御します。アイデンティティベースのポリシーを作成する方法については、*IAM ユーザーガイド*の「[IAM ポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

アイデンティティベースのポリシーは、さらに*インラインポリシー*または*管理ポリシー*に分類できます。インラインポリシーは、単一のユーザー、グループ、またはロールに直接埋め込まれています。マネージドポリシーは、AWS アカウント内の複数のユーザー、グループ、およびロールにアタッチできるスタンドアロンポリシーです。マネージドポリシーには、AWS マネージドポリシーとカスタマーマネージドポリシーが含まれます。管理ポリシーまたはインラインポリシーのいずれかを選択する方法については、*IAM ユーザーガイド*の[管理ポリシーとインラインポリシーの比較](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#choosing-managed-or-inline)を参照してください。

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

リソースベースのポリシーは、リソースにアタッチする JSON ポリシードキュメントです。リソースベースのポリシーの例は、IAM *ロールの信頼ポリシー*および Amazon S3 *バケットポリシー*です。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、ポリシーは、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件を定義します。リソースベースのポリシーで、[プリンシパルを指定する](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または AWS のサービスを含めることができます。

リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーで IAM の AWS マネージドポリシーを使用することはできません。

### アクセスコントロールリスト (ACL)
<a name="security_iam_access-manage-acl"></a>

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするための許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

Amazon S3、AWS WAF、および Amazon VPC は、ACL をサポートするサービスの例です。ACL の詳細については、*Amazon Simple Storage Service デベロッパーガイド*の「[アクセスコントロールリスト (ACL) の概要](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html)」を参照してください。

### その他のポリシータイプ
<a name="security_iam_access-manage-other-policies"></a>

AWS では、別のあまり一般的ではないポリシータイプもサポートしています。これらのポリシータイプでは、より一般的なポリシータイプで付与された最大の許可を設定できます。
+ **許可の境界** – 許可の境界は、ID ベースのポリシーが IAM エンティティ (IAM ユーザーまたはロール) に付与できる許可の上限を設定する高度な機能です。エンティティの許可の境界を設定できます。結果として得られる許可は、エンティティの アイデンティティベースポリシーとその許可の境界の共通部分です。`Principal`フィールドでユーザーまたはロールを指定するリソースベースのポリシーは、許可の境界では制限されません。これらのポリシーのいずれかを明示的に拒否した場合、その許可は無効になります。許可の境界の詳細については、*IAM ユーザーガイド*の「[IAM エンティティの許可の境界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)」を参照してください。
+ **サービスコントロールポリシー (SCP)** – SCP は、AWS Organizations で組織や組織単位 (OU) に最大アクセス許可を指定する JSON ポリシーです。AWS Organizations は、お客様のビジネスが所有する複数のAWS アカウント をグループ化し、一元的に管理するサービスです。組織内のすべての機能を有効にすると、サービス制御ポリシー (SCP) を一部またはすべてのアカウントに適用できます。SCP はメンバーアカウントのエンティティ (各 AWS アカウントルートユーザーなど) に対するアクセス許可を制限します。Organizations と SCP の詳細については、* ユーザーガイド*の「[ SCP の仕組み](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html)」を参照してください。
+ **セッションポリシー** – セッションポリシーは、ロールまたはフェデレーティッドユーザーの一時セッションをプログラムで作成する際にパラメータとして渡す高度なポリシーです。結果として得られるセッションの許可は、ユーザーまたはロールのアイデンティティベースポリシーとセッションポリシーの共通部分です。また、リソースベースのポリシーから許可が派生する場合もあります。これらのポリシーのいずれかを明示的に拒否した場合、その許可は無効になります。詳細については、*IAM ユーザーガイド*の「[セッションポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)」を参照してください。

### 複数のポリシータイプ
<a name="security_iam_access-manage-multiple-policies"></a>

1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成される許可を理解するのがさらに複雑になります。複数のポリシータイプが関連するとき、リクエストを許可するかどうかを AWSが決定する方法の詳細については、*IAM ユーザーガイド*の[ポリシーの評価ロジック](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)を参照してください。





