

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

# Amazon Simple Workflow Service での Identity and Access Management
<a name="swf-dev-iam"></a>

Amazon SWF にアクセスするには、 がリクエストの認証 AWS に使用できる認証情報が必要です。これらの認証情報には、他の AWS リソースからイベントデータを取得するなど、 AWS リソースにアクセスするためのアクセス許可が必要です。次のセクションでは、[AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) と Amazon SWF を使用して、リソースにアクセスできるユーザーを制御することで、リソースをセキュリティで保護する方法について詳しく説明します。

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御 AWS のサービス するのに役立つ です。IAM 管理者は、誰を*認証* (サインインを許可) し、誰に Amazon SWF リソースの使用を*承認する* (アクセス許可を付与する) かを制御します。IAM は、追加料金なしで使用できる AWS のサービス です。

**Topics**
+ [オーディエンス](#security_iam_audience)
+ [アイデンティティを使用した認証](#security_iam_authentication)
+ [ポリシーを使用したアクセスの管理](#security_iam_access-manage)
+ [アクセスコントロール](#access-control-swf)
+ [Amazon SWF のポリシーアクション](#security_iam_service-with-iam-id-based-policies-actions)
+ [Amazon SWF のポリシーリソース](#security_iam_service-with-iam-id-based-policies-resources)
+ [Amazon SWF のポリシー条件キー](#security_iam_service-with-iam-id-based-policies-conditionkeys)
+ [Amazon SWF での ACL](#security_iam_service-with-iam-acls)
+ [Amazon SWF での ABAC](#security_iam_service-with-iam-tags)
+ [Amazon SWF での一時的な認証情報の使用](#security_iam_service-with-iam-roles-tempcreds)
+ [Amazon SWF のクロスサービスプリンシパル許可](#security_iam_service-with-iam-principal-permissions)
+ [Amazon SWF のサービスロール](#security_iam_service-with-iam-roles-service)
+ [Amazon SWF のサービスにリンクされたロール](#security_iam_service-with-iam-roles-service-linked)
+ [Amazon SWF のアイデンティティベースの ポリシー](#security_iam_service-with-iam-id-based-policies)
+ [Amazon SWF 内のリソースベースのポリシー](#security_iam_service-with-iam-resource-based-policies)
+ [Amazon Simple Workflow Service で IAM を使用する方法](security_iam_service-with-iam.md)
+ [Amazon Simple Workflow Service のアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)
+ [基本的な原則](swf-dev-iam.basic.md)
+ [Amazon SWF IAM ポリシー](swf-dev-iam.policies.md)
+ [API の要約](swf-dev-iam.api.md)
+ [タグベースのポリシー](tag-based-policies.md)
+ [Amazon SWF 用の Amazon VPC エンドポイント](swf-vpc-endpoints.md)
+ [Amazon Simple Workflow Service アイデンティティとアクセスのトラブルシューティング](security_iam_troubleshoot.md)

## オーディエンス
<a name="security_iam_audience"></a>

 AWS Identity and Access Management (IAM) の使用方法は、ロールによって異なります。
+ **サービスユーザー** - 機能にアクセスできない場合は、管理者にアクセス許可をリクエストします (「[Amazon Simple Workflow Service アイデンティティとアクセスのトラブルシューティング](security_iam_troubleshoot.md)」を参照)。
+ **サービス管理者** - ユーザーアクセスを決定し、アクセス許可リクエストを送信します (「[Amazon Simple Workflow Service で IAM を使用する方法](security_iam_service-with-iam.md)」を参照)
+ **IAM 管理者** - アクセスを管理するためのポリシーを作成します (「[Amazon Simple Workflow Service のアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」を参照)

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

認証とは、ID 認証情報 AWS を使用して にサインインする方法です。、IAM ユーザー AWS アカウントのルートユーザー、または IAM ロールを引き受けることで認証される必要があります。

 AWS IAM アイデンティティセンター (IAM Identity Center)、シングルサインオン認証、Google/Facebook 認証情報などの ID ソースからの認証情報を使用して、フェデレーティッド ID としてサインインできます。サインインの詳細については、「*AWS サインイン ユーザーガイド*」の「[AWS アカウントにサインインする方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」を参照してください。

プログラムによるアクセスの場合、 は SDK と CLI AWS を提供してリクエストを暗号化して署名します。詳細については、「*IAM ユーザーガイド*」の「[API リクエストに対するAWS 署名バージョン 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)」を参照してください。

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

 を作成するときは AWS アカウント、すべての AWS のサービス および リソースへの完全なアクセス権を持つ AWS アカウント *ルートユーザー*と呼ばれる 1 つのサインインアイデンティティから始めます。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザー認証情報を必要とするタスクについては、「*IAM ユーザーガイド*」の「[ルートユーザー認証情報が必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)」を参照してください。

### フェデレーテッドアイデンティティ
<a name="security_iam_authentication-federated"></a>

ベストプラクティスとして、人間のユーザーが一時的な認証情報 AWS のサービス を使用して にアクセスするには、ID プロバイダーとのフェデレーションを使用する必要があります。

*フェデレーション ID* は、エンタープライズディレクトリ、ウェブ ID プロバイダー、または ID Directory Service ソースの認証情報 AWS のサービス を使用して にアクセスするユーザーです。フェデレーテッドアイデンティティは、一時的な認証情報を提供するロールを引き受けます。

アクセスを一元管理する場合は、 AWS IAM アイデンティティセンターをお勧めします。詳細については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[IAM アイデンティティセンターとは](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)」を参照してください。

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

*[IAM ユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*は、特定の個人やアプリケーションに対する特定のアクセス許可を持つアイデンティティです。長期認証情報を持つ IAM ユーザーの代わりに一時的な認証情報を使用することをお勧めします。詳細については、*IAM ユーザーガイド*の[「ID プロバイダーとのフェデレーションを使用して にアクセスすることを人間のユーザーに要求する AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)」を参照してください。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)は、IAM ユーザーの集合を指定し、大量のユーザーに対するアクセス許可の管理を容易にします。詳細については、「*IAM ユーザーガイド*」の「[IAM ユーザーに関するユースケース](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)」を参照してください。

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

*[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*は、特定のアクセス許可を持つアイデンティであり、一時的な認証情報を提供します。[ユーザーから IAM ロール (コンソール) に切り替えるか、 または API オペレーションを呼び出すことで、ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)を引き受けることができます。 AWS CLI AWS 詳細については、「*IAM ユーザーガイド*」の「[ロールを引き受けるための各種方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)」を参照してください。

IAM ロールは、フェデレーションユーザーアクセス、一時的な IAM ユーザーのアクセス許可、クロスアカウントアクセス、クロスサービスアクセス、および Amazon EC2 で実行するアプリケーションに役立ちます。詳細については、*IAM ユーザーガイド* の [IAM でのクロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) を参照してください。

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

でアクセスを制御する AWS には、ポリシーを作成し、ID AWS またはリソースにアタッチします。ポリシーは、ID またはリソースに関連付けられたときにアクセス許可を定義します。 は、プリンシパルがリクエストを行うときにこれらのポリシー AWS を評価します。ほとんどのポリシーは JSON ドキュメント AWS として に保存されます。JSON ポリシードキュメントの詳細については、「*IAM ユーザーガイド*」の「[JSON ポリシー概要](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)」を参照してください。

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

デフォルトでは、ユーザーやロールにアクセス許可はありません。IAM 管理者は IAM ポリシーを作成してロールに追加し、このロールをユーザーが引き受けられるようにします。IAM ポリシーは、オペレーションの実行方法を問わず、アクセス許可を定義します。

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

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

アイデンティティベースのポリシーは、*インラインポリシー* (単一の ID に直接埋め込む) または*管理ポリシー* (複数の ID にアタッチされたスタンドアロンポリシー) にすることができます。管理ポリシーとインラインポリシーのいずれかを選択する方法については、「*IAM ユーザーガイド*」の「[管理ポリシーとインラインポリシーのいずれかを選択する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html)」を参照してください。

### リソースベースのポリシー
<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)必要があります。

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

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

AWS は、より一般的なポリシータイプによって付与されるアクセス許可の最大数を設定できる追加のポリシータイプをサポートしています。
+ **アクセス許可の境界** – アイデンティティベースのポリシーで IAM エンティティに付与することのできるアクセス許可の数の上限を設定します。詳細については、「*IAM ユーザーガイド*」の「[IAM エンティティのアクセス許可境界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)」を参照してください。
+ **サービスコントロールポリシー (SCP)** - AWS Organizations内の組織または組織単位の最大のアクセス許可を指定します。詳細については、「*AWS Organizations ユーザーガイド*」の「[サービスコントロールポリシー](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)」を参照してください。
+ **リソースコントロールポリシー (RCP)** – は、アカウント内のリソースで利用できる最大数のアクセス許可を定義します。詳細については、「*AWS Organizations ユーザーガイド*」の「[リソースコントロールポリシー (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.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)」を参照してください。

## アクセスコントロール
<a name="access-control-swf"></a>

リクエストを認証するために有効な認証情報を持つことができますが、アクセス許可を持っていなければ Amazon SWF リソースを作成またはアクセスすることはできません。例えば、Amazon SWF ルールに関連付けられた AWS Lambda、、Amazon Simple Notification Service (Amazon SNS)、および Amazon Simple Queue Service (Amazon SQS) ターゲットを呼び出すためのアクセス許可が必要です。

以下のセクションでは、Amazon SWF のアクセス許可を管理する方法について説明します。最初に概要のセクションを読むことをお勧めします。
+ [基本的な原則](swf-dev-iam.basic.md)
+ [Amazon SWF IAM ポリシー](swf-dev-iam.policies.md)
+ [Amazon SWF のポリシーの記述](swf-dev-iam.policies.md#swf-dev-iam.policies.examples)

## Amazon SWF のポリシーアクション
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**ポリシーアクションのサポート:** あり

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

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

Amazon SWF アクションのリストを確認するには、*「サービス認可リファレンス*」の[「Amazon Simple Workflow Service で定義されるリソース](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonsimpleworkflowservice.html#amazonsimpleworkflowservice-resources-for-iam-policies)」を参照してください。

Amazon SWF のポリシーアクションは、アクションの前に次のプレフィックスを使用します。

```
swf
```

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

```
"Action": [
      "swf:action1",
      "swf:action2"
         ]
```

Amazon SWF のアイデンティティベースポリシーの例を確認するには、「[Amazon Simple Workflow Service のアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」を参照してください。

## Amazon SWF のポリシーリソース
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**ポリシーリソースのサポート:** あり

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

`Resource` JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) を使用してリソースを指定します。リソースレベルのアクセス許可をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (\$1) を使用します。

```
"Resource": "*"
```

Amazon SWF リソースタイプとその ARNs[「Amazon Simple Workflow Service で定義されるアクション](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonsimpleworkflowservice.html#amazonsimpleworkflowservice-actions-as-permissions)」を参照してください。 **どのアクションで各リソースの ARN を指定できるかについては、「[Amazon Simple Workflow Service で定義されるリソース](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonsimpleworkflowservice.html#amazonsimpleworkflowservice-resources-for-iam-policies)」を参照してください。

Amazon SWF のアイデンティティベースポリシーの例を確認するには、「[Amazon Simple Workflow Service のアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」を参照してください。

## Amazon SWF のポリシー条件キー
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**サービス固有のポリシー条件キーのサポート:** あり

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

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

Amazon SWF 条件キーのリストを確認するには、*「サービス認可リファレンス*」の[「Amazon Simple Workflow Service の条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonsimpleworkflowservice.html#amazonsimpleworkflowservice-policy-keys)」を参照してください。条件キーを使用できるアクションとリソースについては、「[Amazon Simple Workflow Service で定義されるリソース](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonsimpleworkflowservice.html#amazonsimpleworkflowservice-resources-for-iam-policies)」を参照してください。

Amazon SWF のアイデンティティベースポリシーの例を確認するには、「[Amazon Simple Workflow Service のアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」を参照してください。

## Amazon SWF での ACL
<a name="security_iam_service-with-iam-acls"></a>

**ACL のサポート:** なし 

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

## Amazon SWF での ABAC
<a name="security_iam_service-with-iam-tags"></a>

**ABAC (ポリシー内のタグ) のサポート:** 一部

属性ベースのアクセスコントロール (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグをアタッチし、プリンシパルのタグがリソースのタグと一致するときにオペレーションを許可するように ABAC ポリシーを設計できます。

タグに基づいてアクセスを管理するには、`aws:ResourceTag/key-name`、`aws:RequestTag/key-name`、または `aws:TagKeys` の条件キーを使用して、ポリシーの[条件要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値は**あり**です。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「**部分的**」になります。

ABAC の詳細については、「*IAM ユーザーガイド*」の「[ABAC 認可でアクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「*IAM ユーザーガイド*」の「[属性ベースのアクセスコントロール (ABAC) を使用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)」を参照してください。

## Amazon SWF での一時的な認証情報の使用
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**一時的な認証情報のサポート:** あり

一時的な認証情報は、 AWS リソースへの短期的なアクセスを提供し、フェデレーションまたはスイッチロールの使用時に自動的に作成されます。長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成 AWS することをお勧めします。詳細については、「*IAM ユーザーガイド*」の「[IAM の一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)」および「[AWS のサービス と IAM との連携](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## Amazon SWF のクロスサービスプリンシパル許可
<a name="security_iam_service-with-iam-principal-permissions"></a>

**転送アクセスセッション (FAS) のサポート:** あり

 転送アクセスセッション (FAS) は、 を呼び出すプリンシパルのアクセス許可と AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストをリクエストする を使用します。FAS リクエストを行う際のポリシーの詳細については、「[転送アクセスセッション](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)」を参照してください。

## Amazon SWF のサービスロール
<a name="security_iam_service-with-iam-roles-service"></a>

**サービスロールのサポート:** あり

 サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイド**の [AWS のサービスに許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)を参照してください。

**警告**  
サービスロールの許可を変更すると、Amazon SWF の機能が破損する可能性があります。Amazon SWF が指示する場合以外は、サービスロールを編集しないでください。

## Amazon SWF のサービスにリンクされたロール
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**サービスにリンクされたロールのサポート:** なし 

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

サービスにリンクされたロールの作成または管理の詳細については、「[IAM と提携するAWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。表の「**サービスリンクロール**」列に `Yes` と記載されたサービスを見つけます。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、**[はい]** リンクを選択します。

## Amazon SWF のアイデンティティベースの ポリシー
<a name="security_iam_service-with-iam-id-based-policies"></a>

**アイデンティティベースのポリシーのサポート:** あり

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

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「*IAM ユーザーガイド*」の「[IAM JSON ポリシーの要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)」を参照してください。

### Amazon SWF のアイデンティティベースのポリシー例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

Amazon SWF のアイデンティティベースポリシーの例を確認するには、「[Amazon Simple Workflow Service のアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」を参照してください。

## Amazon SWF 内のリソースベースのポリシー
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**リソースベースのポリシーのサポート:** なし 

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

クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。詳細については、IAM ユーザーガイド**の[IAM でのクロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)を参照してください。

# Amazon Simple Workflow Service で IAM を使用する方法
<a name="security_iam_service-with-iam"></a>

IAM を使用して Amazon SWF へのアクセスを管理する前に、Amazon SWF で使用できる IAM 機能について理解しておく必要があります。


**Amazon Simple Workflow Service で使用できる IAM の機能**  

| IAM 機能 | Amazon SWF のサポート | 
| --- | --- | 
|  [アイデンティティベースのポリシー](swf-dev-iam.md#security_iam_service-with-iam-id-based-policies)  |   あり  | 
|  [リソースベースのポリシー](swf-dev-iam.md#security_iam_service-with-iam-resource-based-policies)  |   なし   | 
|  [ポリシーアクション](swf-dev-iam.md#security_iam_service-with-iam-id-based-policies-actions)  |   あり  | 
|  [ポリシーリソース](swf-dev-iam.md#security_iam_service-with-iam-id-based-policies-resources)  |   はい  | 
|  [ポリシー条件キー (サービス固有)](swf-dev-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   はい  | 
|  [ACL](swf-dev-iam.md#security_iam_service-with-iam-acls)  |   なし   | 
|  [ABAC (ポリシー内のタグ)](swf-dev-iam.md#security_iam_service-with-iam-tags)  |   部分的  | 
|  [一時認証情報](swf-dev-iam.md#security_iam_service-with-iam-roles-tempcreds)  |   あり  | 
|  [プリンシパルアクセス権限](swf-dev-iam.md#security_iam_service-with-iam-principal-permissions)  |   あり  | 
|  [サービスロール](swf-dev-iam.md#security_iam_service-with-iam-roles-service)  |   あり  | 
|  [サービスリンクロール](swf-dev-iam.md#security_iam_service-with-iam-roles-service-linked)  |   いいえ   | 

Amazon SWF およびその他の AWS のサービスがほとんどの IAM 機能と連携する方法の概要については、「IAM *ユーザーガイド*」の[AWS 「IAM と連携する のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

# Amazon Simple Workflow Service のアイデンティティベースのポリシーの例
<a name="security_iam_id-based-policy-examples"></a>

デフォルトでは、ユーザーとロールには Amazon SWF リソースを作成または変更するアクセス許可がありません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。

これらのサンプルの JSON ポリシードキュメントを使用して IAM アイデンティティベースのポリシーを作成する方法については、「*IAM ユーザーガイド*」の「[IAM ポリシーを作成する (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)」を参照してください。

各リソースタイプの ARN の形式など、Amazon SWF で定義されるアクションとリソースタイプの詳細については、*「サービス認可リファレンス*」の[「Amazon Simple Workflow Service のアクション、リソース、および条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonsimpleworkflowservice.html)」を参照してください。 ARNs 

**Topics**
+ [ポリシーに関するベストプラクティス](#security_iam_service-with-iam-policy-best-practices)
+ [Amazon SWF コンソールの使用](#security_iam_id-based-policy-examples-console)
+ [自分の権限の表示をユーザーに許可する](#security_iam_id-based-policy-examples-view-own-permissions)

## ポリシーに関するベストプラクティス
<a name="security_iam_service-with-iam-policy-best-practices"></a>

ID ベースのポリシーは、ユーザーのアカウント内で誰かが Amazon SWF リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションでは、 AWS アカウントに費用が発生する場合があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
+ ** AWS 管理ポリシーを開始し、最小特権のアクセス許可に移行する** – ユーザーとワークロードにアクセス許可の付与を開始するには、多くの一般的なユースケースにアクセス許可を付与する*AWS 管理ポリシー*を使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、*IAM ユーザーガイド* の [AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) または [ジョブ機能のAWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) を参照してください。
+ **最小特権を適用する** – IAM ポリシーでアクセス許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、*IAM ユーザーガイド* の [IAM でのポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) を参照してください。
+ **IAM ポリシーで条件を使用してアクセスをさらに制限する** - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。たとえば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。条件を使用して、サービスアクションが などの特定の を通じて使用されている場合に AWS のサービス、サービスアクションへのアクセスを許可することもできます CloudFormation。詳細については、*IAM ユーザーガイド* の [IAM JSON ポリシー要素:条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) を参照してください。
+ **IAM アクセスアナライザー を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する** - IAM アクセスアナライザー は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、*IAM ユーザーガイド* の [IAM Access Analyzer でポリシーを検証する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) を参照してください。
+ **多要素認証 (MFA) を要求する** – で IAM ユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、MFA をオンにしてセキュリティを強化します。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、*IAM ユーザーガイド* の [MFA を使用した安全な API アクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) を参照してください。

IAM でのベストプラクティスの詳細については、*IAM ユーザーガイド* の [IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) を参照してください。

## Amazon SWF コンソールの使用
<a name="security_iam_id-based-policy-examples-console"></a>

Amazon Simple Workflow Service コンソールにアクセスするには、最小限の権限のセットが必要です。これらのアクセス許可により、 の Amazon SWF リソースの詳細を一覧表示および表示できます AWS アカウント。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

 AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。

ユーザーとロールが引き続き Amazon SWF コンソールを使用できるようにするには、エンティティに Amazon SWF `ConsoleAccess`または `ReadOnly` AWS 管理ポリシーもアタッチします。詳細については、「*IAM ユーザーガイド*」の「[ユーザーへのアクセス許可の追加](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)」を参照してください。

## 自分の権限の表示をユーザーに許可する
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI または AWS API を使用してプログラムでこのアクションを実行するアクセス許可が含まれています。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# 基本的な原則
<a name="swf-dev-iam.basic"></a>

Amazon SWF アクセスコントロールは、主に次の 2 種類の権限に基づいています。
+ リソースアクセス許可: ユーザーがアクセスできる Amazon SWF リソース。

  ドメインに対してのみリソースアクセス許可を表すことができます。
+ API のアクセス許可: ユーザーが呼び出すことができる Amazon SWF アクション。

最も簡単な方法は、完全なアカウントアクセスを許可する、任意のドメインで任意の Amazon SWF アクションを呼び出すか、アクセスを完全に拒否することです。ただし IAM では、アクセス許可への細分化されたより便利なアプローチをサポートします。例えば、次のことができます。
+ 制限なしで、特定のドメイン内でのみ、任意の Amazon SWF アクションを呼び出すことができます。このようなポリシーを使用すると、開発中のワークフローアプリケーションで任意のアクションを使用できるようになりますが、「サンドボックス」ドメインのみが使用できます。
+ ユーザーが任意のドメインにアクセスできるようにしますが、API の使用方法を制限します。このようなポリシーを使用すると、「監査人」アプリケーションにより任意のドメイン内の API を呼び出し、読み取りアクセスのみを許可できます。
+ 特定のドメインでは、限定された一連のアクションのみを呼び出すことができます。このようなポリシーを使用すると、ワークフロースターターが指定されたドメインで `StartWorkflowExecution` アクションのみを呼び出すことができます。

Amazon SWF アクセスコントロールは、以下の原則に基づいています。
+ アクセスコントロールの判断は、IAM ポリシーにのみ基づいています。すべてのポリシーの監査と操作は IAM によって行われます。
+ アクセスコントロールモデルでは、「デフォルトによる拒否」ポリシーが使用されます。明示的に許可されていないすべてのアクセスは拒否されます。
+ 適切な IAM ポリシーをワークフローのアクターにアタッチすることによって、Amazon SWF リソースへのアクセスを制御します。
+ ドメインに対してのみリソース権限を表すことができます。
+ 1 つ以上のパラメータに条件を適用することによって、一部のアクションの使用をさらに制限することができます。
+ [RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html) を使用する許可を与えた場合、そのアクションに含まれる決定のリストに対するアクセス許可を表すことができます。

  それぞれの決定には、通常の API 呼び出しと同じように、1 つ以上のパラメータがあります。ポリシーを可能な限り読みやすくするために、いくつかのパラメータに条件を適用するなど、実際の API 呼び出しのように、決定にアクセス許可を表すことができます。これらのタイプのアクセス許可は、*擬似 API* のアクセス許可と呼ばれます。

条件を使用して、制約を受ける、通常の API パラメータと擬似 API パラメータの概要については、[API の要約](swf-dev-iam.api.md) を参照してください。

# Amazon SWF IAM ポリシー
<a name="swf-dev-iam.policies"></a>

IAM ポリシーには、1 つ以上の `Statement` 要素が含まれており、各要素には、そのポリシーを定義する一連の要素が含まれます。要素の完全な一覧とポリシーの作成方法に関する一般的な説明については、「[The Access Policy Language](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage.html)」(アクセスポリシー言語) を参照してください。Amazon SWF のアクセス制御は、次の要素に基づいています。

効果  
(必須) ステートメントの効果: `deny` または `allow`。  
明示的にアクセスを許可する必要があります。IAM は、デフォルトでアクセスを拒否します。

[リソース]   
(必須) ステートメントが適用される、ユーザーが操作できる AWS サービスのエンティティであるリソース。  
ドメインに対してのみリソースアクセス許可を表すことができます。たとえば、ポリシーでは、アカウント内の特定のドメインのみにアクセスを許可することができます。ドメインのアクセス許可を表すには、`Resource` を「arn:aws:swf:*Region*:*AccountID*:/domain/*DomainName*」の形式のドメインの Amazon Resource Name (ARN) に設定します。*Region* は AWS リージョン、*AccountID* はダッシュのないアカウント ID、*DomainName* はドメイン名です。

Action  
(必須) 次の形式 (*serviceId*:*action*) を使用して参照する、ステートメントが適用されるアクション。Amazon SWFの場合、*serviceID* を `swf` に設定します。たとえば、`swf:StartWorkflowExecution` は [StartWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_StartWorkflowExecution.html) アクションを参照し、ワークフローを開始できるユーザーを制御するために使用されます。  
 [RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html) を使用する権限を与えた場合は、`Action` を使用して疑似 API のアクセス許可を表すことで、含まれる決定リストへのアクセスを制御することもできます。IAM はデフォルトでアクセスを拒否するため、ディサイダーの決定が明示的に許可されない場合、受け入れられません。`*` 値を使用してすべての決定を許可することができます。

Condition  
許可された値を制限するアクションのパラメータの 1 つ以上に制約を表現します。  
Amazon SWF アクションには多くの場合、幅広い範囲があり、IAM 条件を使用することで削減できます。たとえば、[PollForActivityTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForActivityTask.html) アクションがアクセスできるタスクリストを制限するには、`Condition` を含め、`swf:taskList.name` キーを使用して許容リストを指定します。  
以下のエンティティに対して制約を表すことができます。  
+ ワークフロータイプ。名前とバージョンに別のキーがあります。
+ アクティビティのタイプ。名前とバージョンに別のキーがあります。
+ タスクリスト。
+ タグ。一部のアクションに対して複数のタグを指定できます。その場合、各タグには別のキーがあります。
Amazon SWF の場合、値はすべて文字列です。そのため、パラメータを指定した文字列に制限する `StringEquals` などの文字列演算子を使用してパラメータを制約します。ただし、`StringEquals` などの通常の文字列比較演算子では、すべての要求にパラメータを含める必要があります。パラメータを明示的に含めず、タイプ登録時に指定されたデフォルトのタスクリストなどのデフォルト値がない場合、アクセスは拒否されます。  
条件をオプションとして扱うと便利です。関連するパラメータを必ずしも必要とせずにアクションを呼び出すことができます。たとえば、ディサイダーが一連の [RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html) 決定を指定することもできますが、特定の呼び出しに対して 1 つだけ指定することもできます。その場合、`StringEqualsIfExists` 演算子を使用して適切なパラメータを制約します。これは、パラメータが条件を満たす場合にアクセスを許可しますが、パラメータがない場合はアクセスを拒否しません。
制約付きのパラメータと関連するキーの完全なリストについては、[API の要約](swf-dev-iam.api.md) を参照してください。

次のセクションでは、Amazon SWF ポリシーを構築する方法の例を示します。詳細については、「[String Conditions](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#AccessPolicyLanguage_ConditionType)」(文字列の条件) を参照してください。

## Amazon SWF のポリシーの記述
<a name="swf-dev-iam.policies.examples"></a>

ワークフローは、アクティビティ、ディサイダーなどの複数の*アクター*で構成されます。適切な IAM ポリシーをアタッチすることで、各アクターのアクセスを制御できます。

次のアクションでは、アクターにすべてのリージョンでフルアカウントアクセスが付与されます。
+ **アクション: ** `swf:*`
+ **リソース**: `arn:aws:swf:*:123456789012:/domain/*`

 ワイルドカードを使用すると、単一の値で複数のリソース、アクション、またはリージョンを表すことができます。
+ `Resource` 値の最初のワイルドカード (`*`) は、リソースのアクセス許可がすべての**リージョン**に適用されることを示します。

  アクセス権限を単一のリージョンに制限するには、ワイルドカードを us-east-1 などの適切なリージョン文字列に置き換えます。
+ `Resource` 値の 2 番目のワイルドカード (`*`) は、アクターが指定されたリージョン内の任意のアカウントのドメインにアクセスできるようにします。
+ `Action` 値のワイルドカード (`*`) を使用すると、アクターは、任意の Amazon SWF アクションを呼び出すことができます。

ワイルドカードを使用する方法の詳細については、「[Element Descriptions](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html)」(要素の説明) を参照してください。

### ドメインのアクセス許可
<a name="swf-dev-iam.policies.examples.domain"></a>

部門のワークフローを特定のドメインに制限するには、特定の部門に対してのみ、アクターが任意のアクションを呼び出すことを許可するアクセス許可を付与できます。

アクターに複数のドメインへのアクセスを許可するには、各ドメインのアクセス許可をステートメントのリストとして表現します。
+ **アクション: ** `swf:*`
+ **リソース**: `arn:aws:swf:*:123456789012:/domain/department1` 
+ **リソース**: `arn:aws:swf:*:123456789012:/domain/department2` 

および `department1``department2`ドメインで任意の Amazon SWF アクションを使用することをアクターに許可できます。ワイルドカードを使用して複数のドメインを表すこともできます。

### API のアクセス許可と制約
<a name="swf-dev-iam.policies.examples.api"></a>

アクターが使用できる**アクション**を制御するには、 `Action`要素でアクションを指定します。

次のアクションでは、アクターは を呼び出し`StartWorkflowExecution`てワークフローを開始できます。他のアクションを使用することはできません。
+ **アクション: ** `swf:StartWorkflowExecution` 

**条件**  
オプションで、 `Condition`要素を使用してアクションの許容パラメータ値を制約できます。

アクターが開始できるワークフローを制限するには、次のように 1 つ以上の`StartWorkflowExecution`パラメータ値を制約します。

```
"Condition" : {
   "StringEquals" : { 
      "swf:workflowType.name" : "workflow1",
      "swf:workflowType.version" : "version2" 
    }
}
```

前述の制約を持つアクターは のみを実行することができ`version2``workflow1`、両方のパラメータをリクエストに含める必要があります。

次のように、`StringEqualsIfExists` 演算子を使用して、リクエストにパラメータを含めることなくパラメータを制約できます。

```
"Condition" : {
   "StringEqualsIfExists" : { "swf:taskList.name" : "task_list_name" }
}
```

前のポリシーを持つアクターは、ワークフロー実行を開始するときに、オプションでタスクリストを指定できます。

いくつかのアクションに対してタグのリストを制約することができます。各タグには個別のキーがあるため、 `swf:tagList.member.0`を使用してリスト内の最初のタグを制限し、 `swf:tagList.member.1` を使用してリスト内の 2 番目のタグを制限します。次に、最大 5 つまで制限します。

タグリストの制約方法には注意が必要です。たとえば、次の条件は推奨***されません***。

以下の条件は、オプションで `some_ok_tag`または を指定できるため、推奨**されません**`another_ok_tag`。ただし、Condition はタグリスト**の最初の要素**のみを制限します。条件が `swf:tagList.member.1`、 などに条件を適用しないため`swf:tagList.member.2`、リストには任意の値を持つ追加の要素を含めることができます。

```
// Example to illustrate an insecure Condition
"Condition" : {
   "StringEqualsIfExists" : {
      "swf:tagList.member.0" : "some_ok_tag", "another_ok_tag"
   }
}
```

前の問題に対処する 1 つの方法は、タグリストの使用を禁止することです。

次のポリシーでは、リストに 1 つの要素のみ持つように要求することで、`some_ok_tag` または `another_ok_tag` のみが許可されるようにします。

```
"Condition" : {
   "StringEqualsIfExists" : {
      "swf:tagList.member.0" : "some_ok_tag", "another_ok_tag"
    },
    "Null" : { "swf:tagList.member.1" : "true" }
}
```

### 疑似 API のアクセス許可と制約
<a name="pseudo-api-permissions-constraints"></a>

で使用できる決定を制限するには`RespondDecisionTaskCompleted`、まずアクターに の呼び出しを許可する必要があります`RespondDecisionTaskCompleted`。次に、次のように、通常の API と同じ構文を使用して、適切な擬似 API メンバーのアクセス許可を表現します。
+ **ステートメント 1**

  **リソース**: `arn:aws:swf:*:123456789012:/domain/*` 

  **アクション: ** `swf:RespondDecisionTaskCompleted` 
+ **ステートメント 2**

  **リソース**: `*` 

  **アクション: ** `swf:ScheduleActivityTask` 

  **条件**: ` "StringEquals" : { "swf:activityType.name" : "SomeActivityType" }` 

1 つ目は、アクターが を呼び出すこと`Statement`を許可します`RespondDecisionTaskCompleted`。2 番目のステートメントでは、アクターは`ScheduleActivityTask`決定を使用して Amazon SWF にアクティビティタスクのスケジュールを指示できます。すべての決定を可能にするには、「swf:ScheduleActivityTask」を「swf:\$1」に置き換えます。

条件演算子を使用すると、通常の API と同様にパラメータを制約できます。前の例の `StringEquals`演算子`Condition`は、 `RespondDecisionTaskCompleted` がアクティビティの`SomeActivityType`アクティビティタスクをスケジュールすることを許可し、そのタスクをスケジュールする必要があります。`RespondDecisionTaskCompleted` がパラメータ値を使用することを許可したいが、そうする必要がない場合は、代わりに `StringEqualsIfExists` 演算子を使用することができます。

## AWS マネージドポリシー: SimpleWorkflowFullAccess
<a name="swf-full-accss-mngd-policy"></a>

`SimpleWorkflowFullAccess` ポリシーを IAM アイデンティティにアタッチできます。

このポリシーは、Amazon SWF 設定サービスへのフルアクセスを提供します。

## IAM ポリシーに関するサービスモデルの制限
<a name="swf-dev-iam.policies.allowed"></a>

IAM ポリシーを作成するときは、サービスモデルの制限を検討する必要があります。無効な Amazon SWF リクエストを表す構文的に有効な IAM ポリシーを作成することは可能です。アクセスコントロールに関して許容されるリクエストでも、無効なリクエストであるために失敗する可能性があります。

例えば、Amazon SWF サービスモデル**では**、 パラメータ`typeFilter`と `tagFilter`パラメータを同じ`[ListOpenWorkflowExecutions](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListOpenWorkflowExecutions.html)`リクエストで使用することはできません。次の条件では、スローによってサービスが拒否する呼び出しを無効なリクエスト`ValidationException`として許可します。

```
"Condition" : {
   "StringEquals" : { 
      "swf:typeFilter.name" : "workflow_name",
      "swf:typeFilter.version" : "workflow_version",
      "swf:tagFilter.tag" : "some_tag" 
    }
}
```

# API の要約
<a name="swf-dev-iam.api"></a>

このセクションでは、IAM ポリシーを使用して、アクターが各 API および疑似 API を使用して Amazon SWF リソースにアクセスする方法を制御する方法について簡単に説明します。
+ `RegisterDomain` および `ListDomains` 以外のすべてのアクションでは、ドメインリソースへのアクセス権限を表すことによって、アカウントのドメインの一部またはすべてへのアクセスを許可または拒否できます。
+ 通常の API の任意のメンバーに対して、`[RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html)` を呼び出す許可を与えた場合は、疑似 API の任意のメンバーに対してアクセス権限を許可または拒否できます。
+ 条件を使用して、一部のパラメータの許容値を制限することができます。

次のセクションでは、通常 API および擬似 API の各メンバーに制約され、関連するキーを提供するパラメータをリストアップし、ドメインアクセスを制御する方法の制限を書き留めます。

## 通常の API
<a name="swf-dev-iam.api.regular"></a>

このセクションでは、通常の API メンバーをリストアップし、制約される可能性のあるパラメータと関連するキーについて簡単に説明します。また、ドメインへのアクセスを制御する方法に関する制限事項についても説明します。

`[CountClosedWorkflowExecutions](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CountClosedWorkflowExecutions.html)`
+ `tagFilter.tag` - 文字列制約です。キーは `swf:tagFilter.tag` です。
+ `typeFilter.name` - 文字列制約です。キーは、`swf:typeFilter.name` です。
+ `typeFilter.version` - 文字列制約です。キーは、`swf:typeFilter.version` です。

**注記**  
`CountClosedWorkflowExecutions` では、`typeFilter` と `tagFilter` を相互に排他的にする必要があります。

`[CountOpenWorkflowExecutions](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CountOpenWorkflowExecutions.html)`
+ `tagFilter.tag` - 文字列制約です。キーは `swf:tagFilter.tag` です。
+ `typeFilter.name` - 文字列制約です。キーは、`swf:typeFilter.name` です。
+ `typeFilter.version` - 文字列制約です。キーは、`swf:typeFilter.version` です。

**注記**  
`CountOpenWorkflowExecutions` では、`typeFilter` と `tagFilter` を相互に排他的にする必要があります。

`[CountPendingActivityTasks](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CountPendingActivityTasks.html)`
+ `taskList.name` - 文字列制約です。キーは、`swf:taskList.name` です。

`[CountPendingDecisionTasks](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CountPendingDecisionTasks.html)`
+ `taskList.name` - 文字列制約です。キーは、`swf:taskList.name` です。

`[DeleteActivityType](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DeleteActivityType.html)`
+ `activityType.name` - 文字列制約です。キーは、`swf:activityType.name` です。
+ `activityType.version` - 文字列制約です。キーは、`swf:activityType.version` です。

`[DeprecateActivityType](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DeprecateActivityType.html)`
+ `activityType.name` - 文字列制約です。キーは、`swf:activityType.name` です。
+ `activityType.version` - 文字列制約です。キーは、`swf:activityType.version` です。

`[DeprecateDomain](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DeprecateDomain.html)`
+ このアクションのパラメータを制約することはできません。

`[DeleteWorkflowType](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DeleteWorkflowType.html)`
+ `workflowType.name` - 文字列制約です。キーは、`swf:workflowType.name` です。
+ `workflowType.version` - 文字列制約です。キーは、`swf:workflowType.version` です。

`[DeprecateWorkflowType](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DeprecateWorkflowType.html)`
+ `workflowType.name` - 文字列制約です。キーは、`swf:workflowType.name` です。
+ `workflowType.version` - 文字列制約です。キーは、`swf:workflowType.version` です。

`[DescribeActivityType](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeActivityType.html)`
+ `activityType.name` - 文字列制約です。キーは、`swf:activityType.name` です。
+ `activityType.version` - 文字列制約です。キーは、`swf:activityType.version` です。

`[DescribeDomain](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeDomain.html)`
+ このアクションのパラメータを制約することはできません。

`[DescribeWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeWorkflowExecution.html)`
+ このアクションのパラメータを制約することはできません。

`[DescribeWorkflowType](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeWorkflowType.html)`
+ `workflowType.name` - 文字列制約です。キーは、`swf:workflowType.name` です。
+ `workflowType.version` - 文字列制約です。キーは、`swf:workflowType.version` です。

`[GetWorkflowExecutionHistory](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_GetWorkflowExecutionHistory.html)`
+ このアクションのパラメータを制約することはできません。

`[ListActivityTypes](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListActivityTypes.html)`
+ このアクションのパラメータを制約することはできません。

`[ListClosedWorkflowExecutions](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListClosedWorkflowExecutions.html)`
+ `tagFilter.tag` - 文字列制約です。キーは `swf:tagFilter.tag` です。
+ `typeFilter.name` - 文字列制約です。キーは、`swf:typeFilter.name` です。
+ `typeFilter.version` - 文字列制約です。キーは、`swf:typeFilter.version` です。

**注記**  
`ListClosedWorkflowExecutions` では、`typeFilter` と `tagFilter` を相互に排他的にする必要があります。

`[ListDomains](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListDomains.html)`
+ このアクションのパラメータを制約することはできません。

`[ListOpenWorkflowExecutions](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListOpenWorkflowExecutions.html)`
+ `tagFilter.tag` - 文字列制約です。キーは `swf:tagFilter.tag` です。
+ `typeFilter.name` - 文字列制約です。キーは、`swf:typeFilter.name` です。
+ `typeFilter.version` - 文字列制約です。キーは、`swf:typeFilter.version` です。

**注記**  
`ListOpenWorkflowExecutions` では、`typeFilter` と `tagFilter` を相互に排他的にする必要があります。

`[ListWorkflowTypes](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListWorkflowTypes.html)`
+ このアクションのパラメータを制約することはできません。

`[PollForActivityTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForActivityTask.html)`
+ `taskList.name` - 文字列制約です。キーは、`swf:taskList.name` です。

`[PollForDecisionTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForDecisionTask.html)`
+ `taskList.name` - 文字列制約です。キーは、`swf:taskList.name` です。

`[RecordActivityTaskHeartbeat](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RecordActivityTaskHeartbeat.html)`
+ このアクションのパラメータを制約することはできません。

`[RegisterActivityType](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterActivityType.html)`
+ `defaultTaskList.name` - 文字列制約です。キーは、`swf:defaultTaskList.name` です。
+ `name` - 文字列制約です。キーは、`swf:name` です。
+ `version` - 文字列制約です。キーは、`swf:version` です。

`[RegisterDomain](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterDomain.html)`
+ `name` - 登録されたドメインの名前は、このアクションのリソースとして利用できます。

`[RegisterWorkflowType](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterWorkflowType.html)`
+ `defaultTaskList.name` - 文字列制約です。キーは、`swf:defaultTaskList.name` です。
+ `name` - 文字列制約です。キーは、`swf:name` です。
+ `version` - 文字列制約です。キーは、`swf:version` です。

`[RequestCancelWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RequestCancelWorkflowExecution.html)`
+ このアクションのパラメータを制約することはできません。

`[RespondActivityTaskCanceled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCanceled.html)`
+ このアクションのパラメータを制約することはできません。

`[RespondActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCompleted.html)`
+ このアクションのパラメータを制約することはできません。

`[RespondActivityTaskFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskFailed.html)`
+ このアクションのパラメータを制約することはできません。

`[RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html)`
+ `decisions.member.N` - 擬似 API のアクセス権限を使用して間接的に制限されます。詳細については、「[擬似 API](#swf-dev-iam.api.pseudo)」を参照してください。

`[SignalWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_SignalWorkflowExecution.html)`
+ このアクションのパラメータを制約することはできません。

`[StartWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_StartWorkflowExecution.html)`
+ `tagList.member.0` - 文字列制約です。キーは `swf:tagList.member.0` です。
+ `tagList.member.1` - 文字列制約です。キーは `swf:tagList.member.1` です。
+ `tagList.member.2` - 文字列制約です。キーは `swf:tagList.member.2` です。
+ `tagList.member.3` - 文字列制約です。キーは `swf:tagList.member.3` です。
+ `tagList.member.4` - 文字列制約です。キーは `swf:tagList.member.4` です。
+ `taskList.name` - 文字列制約です。キーは、`swf:taskList.name` です。
+ `workflowType.name` - 文字列制約です。キーは、`swf:workflowType.name` です。
+ `workflowType.version` - 文字列制約です。キーは、`swf:workflowType.version` です。

**注記**  
5 つ以上のタグを制約することはできません。

`[TerminateWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_TerminateWorkflowExecution.html)`
+ このアクションのパラメータを制約することはできません。

## 擬似 API
<a name="swf-dev-iam.api.pseudo"></a>

このセクションでは、`[RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html)` に含まれる決定を表す擬似 API のメンバーをリストします。`RespondDecisionTaskCompleted` の使用を許可した場合、ポリシーは通常の API と同じ方法でこの API のメンバーのアクセス許可を表すことができます。1 つ以上のパラメータに条件を設定することによって、擬似 API の一部のメンバーをさらに制限することができます。このセクションでは、疑似 API メンバーをリストアップし、制約される可能性のあるパラメータと関連するキーについて簡単に説明します。

**注記**  
`aws:SourceIP`、`aws:UserAgent`、`aws:SecureTransport` キーは擬似 API には使用できません。意図したセキュリティポリシーでこれらのキーで疑似 API へのアクセスを制御する必要がある場合は、`RespondDecisionTaskCompleted` アクションでそれらのキーを使用できます。

`CancelTimer`
+ このアクションのパラメータを制約することはできません。

`CancelWorkflowExecution`
+ このアクションのパラメータを制約することはできません。

`CompleteWorkflowExecution`
+ このアクションのパラメータを制約することはできません。

`ContinueAsNewWorkflowExecution`
+ `tagList.member.0` - 文字列制約です。キーは `swf:tagList.member.0` です。
+ `tagList.member.1` - 文字列制約です。キーは `swf:tagList.member.1` です。
+ `tagList.member.2` - 文字列制約です。キーは `swf:tagList.member.2` です。
+ `tagList.member.3` - 文字列制約です。キーは `swf:tagList.member.3` です。
+ `tagList.member.4` - 文字列制約です。キーは `swf:tagList.member.4` です。
+ `taskList.name` - 文字列制約です。キーは、`swf:taskList.name` です。
+ `workflowTypeVersion` - 文字列制約です。キーは、`swf:workflowTypeVersion` です。

**注記**  
5 つ以上のタグを制約することはできません。

`FailWorkflowExecution`
+ このアクションのパラメータを制約することはできません。

`RecordMarker`
+ このアクションのパラメータを制約することはできません。

`RequestCancelActivityTask`
+ このアクションのパラメータを制約することはできません。

`RequestCancelExternalWorkflowExecution`
+ このアクションのパラメータを制約することはできません。

`ScheduleActivityTask`
+ `activityType.name` - 文字列制約です。キーは、`swf:activityType.name` です。
+ `activityType.version` - 文字列制約です。キーは、`swf:activityType.version` です。
+ `taskList.name` - 文字列制約です。キーは、`swf:taskList.name` です。

`SignalExternalWorkflowExecution`
+ このアクションのパラメータを制約することはできません。

`StartChildWorkflowExecution`
+ `tagList.member.0` - 文字列制約です。キーは `swf:tagList.member.0` です。
+ `tagList.member.1` - 文字列制約です。キーは `swf:tagList.member.1` です。
+ `tagList.member.2` - 文字列制約です。キーは `swf:tagList.member.2` です。
+ `tagList.member.3` - 文字列制約です。キーは `swf:tagList.member.3` です。
+ `tagList.member.4` - 文字列制約です。キーは `swf:tagList.member.4` です。
+ `taskList.name` - 文字列制約です。キーは、`swf:taskList.name` です。
+ `workflowType.name` - 文字列制約です。キーは、`swf:workflowType.name` です。
+ `workflowType.version` - 文字列制約です。キーは、`swf:workflowType.version` です。

**注記**  
5 つ以上のタグを制約することはできません。

`StartTimer`
+ このアクションのパラメータを制約することはできません。

# タグベースのポリシー
<a name="tag-based-policies"></a>

Amazon SWF はタグベースのポリシーをサポートしています。たとえば、キー と値 を持つタグを含む Amazon SWF ドメイン`environment`を`production`次の条件で制限できます。

```
"Condition": {
    "StringEquals": {"aws:ResourceTag/environment": "production"}
}
```

タグ付けの詳細については、以下を参照してください。
+ [Amazon SWF のタグ](swf-dev-adv-tags.md)
+ [IAM タグを使用したアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)

# Amazon SWF 用の Amazon VPC エンドポイント
<a name="swf-vpc-endpoints"></a>

**注記**  
AWS PrivateLink サポートは現在、 AWS トップシークレット - 東部、 AWS シークレットリージョン、中国リージョンでのみ利用できます。

Amazon Virtual Private Cloud (Amazon VPC) を使用して AWS リソースをホストする場合は、Amazon VPC と Amazon Simple Workflow Service ワークフロー間の接続を確立できます。パブリックインターネットと交差せずに、この Amazon SWF ワークフローとの接続を使用できます。

Amazon VPC では、カスタム仮想ネットワークで AWS リソースを起動できます。VPC を使用して、IP アドレス範囲、サブネット、ルートテーブル、ネットワークゲートウェイなどのネットワーク設定を制御できます。Amazon VPC の詳細については、「[Amazon VPC ユーザーガイド](https://docs.aws.amazon.com/vpc/latest/userguide/)」を参照してください。

Amazon VPCを Amazon SWF に接続するには、まず*インターフェイス VPC エンドポイント*を定義する必要があります。これにより、VPC を他の AWS のサービスに接続できるようになります。このエンドポイントを使用すると、インターネットゲートウェイやネットワークアドレス変換 (NAT) インスタンス、または VPN 接続などを必要とせずに、信頼性の高いスケーラブルな方法で接続できるようになります。詳細については、「*Amazon VPC ユーザーガイド*」の「[インターフェイス VPC エンドポイント (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)」を参照してください。

## エンドポイントを作成する
<a name="swf-vpc-endpoint-create"></a>

VPC で Amazon SWF エンドポイントを作成するには AWS マネジメントコンソール、、 AWS Command Line Interface (AWS CLI）、 AWS SDK、Amazon SWF API、または を使用します CloudFormation。

Amazon VPC コンソールまたは AWS CLIを使用して、エンドポイントを作成および設定する方法については、「*Amazon VPC ユーザーガイド*」の「[インターフェイスエンドポイントの作成](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)」を参照してください。

**注記**  
 エンドポイントを作成するとき、VPC の接続先のサービスとして Amazon SWF を指定します。Amazon VPC コンソール上のサービス名は AWS リージョンによって異なります。たとえば、 AWS トップシークレット - 東部リージョンでは、Amazon SWF のサービス名は **com.amazonaws.us-iso-east-1.swf** です。

を使用してエンドポイントを作成および設定する方法については CloudFormation、「 *CloudFormation ユーザーガイド*」の[AWS::EC2::VPCEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) リソース」を参照してください。

## Amazon VPC エンドポイントポリシー
<a name="swf-vpc-endpoint-policy"></a>

Amazon SWF への接続アクセスを制御するには、Amazon VPC エンドポイントの作成中に AWS Identity and Access Management (IAM) エンドポイントポリシーをアタッチします。複数のエンドポイントポリシーをアタッチすることで、複雑な IAM ルールを作成できます。詳細については、以下を参照してください。
+  [Amazon SWF の Amazon Virtual Private Cloud エンドポイントポリシー](swf-vpc-iam.md) 
+  [VPC エンドポイントによるサービスのアクセス制御](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

# Amazon SWF の Amazon Virtual Private Cloud エンドポイントポリシー
<a name="swf-vpc-iam"></a>

以下を指定して、Amazon SWF の Amazon VPC エンドポイントポリシーを作成できます。
+ アクションを実行できる**プリンシパル**。
+ 実行可能なアクション。
+ このアクションを実行できるリソース。

次の例では、ポリシーに特定の IAM ロールを追加します。

```
"Principal": {
   "AWS": "arn:aws:iam::123456789012:role/MyRole"
}
```
+ エンドポイントポリシーの作成方法の詳細については、「[VPC エンドポイントによるサービスへのアクセスの制御](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html)」を参照してください。
+ IAM を使用して AWS および Amazon SWF リソースへのアクセスを制御する方法については、「」を参照してください[Amazon Simple Workflow Service での Identity and Access Management](swf-dev-iam.md)。

# Amazon Simple Workflow Service アイデンティティとアクセスのトラブルシューティング
<a name="security_iam_troubleshoot"></a>

Amazon SWF と IAM の使用に伴って発生する可能性がある一般的な問題の診断や修復には、次の情報を利用してください。

**Topics**
+ [Amazon SWF でアクションを実行する認可がありません](#security_iam_troubleshoot-no-permissions)
+ [iam:PassRole を実行する権限がありません](#security_iam_troubleshoot-passrole)
+ [自分の 以外のユーザーに Amazon SWF リソース AWS アカウント へのアクセスを許可したい](#security_iam_troubleshoot-cross-account-access)

## Amazon SWF でアクションを実行する認可がありません
<a name="security_iam_troubleshoot-no-permissions"></a>

アクションを実行する権限がないというエラーが表示された場合は、そのアクションを実行できるようにポリシーを更新する必要があります。

以下のエラー例は、`mateojackson` ユーザーがコンソールを使用して架空の `my-example-widget` リソースに関する詳細情報を表示しようとしているが、架空の `swf:GetWidget` 許可がないという場合に発生します。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: swf:GetWidget on resource: my-example-widget
```

この場合、Mateo のポリシーでは、`my-example-widget` アクションを使用して `swf:GetWidget` リソースへのアクセスを許可するように更新する必要があります。

サポートが必要な場合は、 AWS 管理者にお問い合わせください。サインイン認証情報を提供した担当者が管理者です。

## iam:PassRole を実行する権限がありません
<a name="security_iam_troubleshoot-passrole"></a>

`iam:PassRole` アクションを実行する権限がないというエラーが表示された場合は、ポリシーを更新して Amazon SWF にロールを渡せるようにする必要があります。

一部の AWS のサービス では、新しいサービスロールまたはサービスにリンクされたロールを作成する代わりに、既存のロールをそのサービスに渡すことができます。そのためには、サービスにロールを渡すアクセス許可が必要です。

次の例のエラーは、`marymajor` という IAM ユーザーがコンソールを使用して Amazon SWF でアクションを実行しようとする場合に発生します。ただし、このアクションをサービスが実行するには、サービスロールから付与されたアクセス許可が必要です。Mary には、ロールをサービスに渡すアクセス許可がありません。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

この場合、Mary のポリシーを更新してメアリーに `iam:PassRole` アクションの実行を許可する必要があります。

サポートが必要な場合は、 AWS 管理者にお問い合わせください。サインイン資格情報を提供した担当者が管理者です。

## 自分の 以外のユーザーに Amazon SWF リソース AWS アカウント へのアクセスを許可したい
<a name="security_iam_troubleshoot-cross-account-access"></a>

他のアカウントのユーザーや組織外の人が、リソースにアクセスするために使用できるロールを作成できます。ロールの引き受けを委託するユーザーを指定できます。リソースベースのポリシーまたはアクセスコントロールリスト (ACL) をサポートするサービスの場合、それらのポリシーを使用して、リソースへのアクセスを付与できます。

詳細については、以下を参照してください:
+ Amazon SWF がこれらの機能をサポートしているかどうかを確認するには、「[Amazon Simple Workflow Service で IAM を使用する方法](security_iam_service-with-iam.md)」を参照してください。
+ 所有 AWS アカウント している のリソースへのアクセスを提供する方法については、[「IAM ユーザーガイド」の「所有 AWS アカウント している別の の IAM ユーザーへのアクセスを提供する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)」を参照してください。 **
+ リソースへのアクセスをサードパーティーに提供する方法については AWS アカウント、*IAM ユーザーガイド*の[「サードパーティー AWS アカウント が所有する へのアクセスを提供する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)」を参照してください。
+ ID フェデレーションを介してアクセスを提供する方法については、*IAM ユーザーガイド* の [外部で認証されたユーザー (ID フェデレーション) へのアクセスの許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) を参照してください。
+ クロスアカウントアクセスにおけるロールとリソースベースのポリシーの使用方法の違いについては、「*IAM ユーザーガイド*」の「[IAM でのクロスアカウントのリソースへのアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)」を参照してください。