

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

# CM OpsWorks と IAM の連携方法
<a name="security_iam_service-with-iam"></a>

IAM を使用して CM OpsWorks へのアクセスを管理する前に、CM で使用できる IAM OpsWorks 機能を理解しておく必要があります。 OpsWorks CM およびその他の AWS のサービスが IAM と連携する方法の概要を把握するには、「IAM *ユーザーガイド*」の[AWS 「IAM と連携する のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

**Topics**
+ [OpsWorks CM アイデンティティベースのポリシー](#security_iam_service-with-iam-id-based-policies-opscm)
+ [OpsWorks CM およびリソースベースのポリシー](#security_iam_resource-based-policies)
+ [OpsWorks CM タグに基づく認可](#security_iam_tags)
+ [OpsWorks CM IAM ロール](#security_iam_roles)

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

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

 OpsWorks CM では、カスタムポリシーステートメントをユーザー、ロール、またはグループにアタッチできます。

### アクション
<a name="security_iam_service-with-iam-id-based-policies-actions-opscm"></a>

IAM アイデンティティベースのポリシーの `Action` エレメントは、そのポリシーにより許可または拒否される特定のアクションについて説明します。ポリシーアクションの名前は通常、関連付けられた AWS API オペレーションと同じです。このアクションは、関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

CM OpsWorks のポリシーアクションは、アクションの前にプレフィックス を使用します`opsworks-cm:`。たとえば、API オペレーションを使用して OpsWorks CM サーバーを作成するためのアクセス許可を付与するには、ポリシーに `opsworks-cm:CreateServer` アクションを含めます。ポリシーステートメントには、 `Action`または `NotAction`要素を含める必要があります。 OpsWorks CM は、このサービスで実行できるタスクを説明する独自の一連のアクションを定義します。

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

```
"Action": [
      "opsworks-cm:action1",
      "opsworks-cm:action2"
```

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

```
"Action": "opsworks-cm:Describe*"
```

ワイルドカードを使用して複数のアクションをポリシーステートメントで許可する場合は、これらのアクションを許可する先が承認済みのサービスまたは承認済みのユーザーであることを確認してください。

 OpsWorks CM アクションのリストを確認するには、*IAM ユーザーガイド*の[AWS OpsWorksのアクション、リソース、および条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsopsworks.html)」を参照してください。

### リソース
<a name="security_iam_service-with-iam-id-based-policies-resources-opscm"></a>

`Resource` エレメントは、アクションが適用されるオブジェクトを指定します。ステートメントには、`Resource` または `NotResource` エレメントを含める必要があります。ARN を使用して、またはステートメントがすべてのリソースに適用されることを示すワイルドカード \*を使用して、リソースを指定します。

CM サーバーまたはバックアップの Amazon リソースナンバー (ARN) OpsWorks を取得するには、 [https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DescribeServers.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DescribeServers.html) または [https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DescribeBackups.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DescribeBackups.html) API オペレーションを実行し、それらのリソースのベースリソースレベルのポリシーを使用します。



CM OpsWorks サーバーリソースには、次の形式の ARN があります。

```
arn:aws:opsworks-cm:{Region}:${Account}:server/${ServerName}/${UniqueId}
```

 OpsWorks CM バックアップリソースには、次の形式の ARN があります。

```
arn:aws:opsworks-cm:{Region}:${Account}:backup/${ServerName}-{Date-and-Time-Stamp-of-Backup}
```

ARN の形式の詳細については、[「Amazon リソースネーム (ARNs AWS 「サービス名前空間](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)」を参照してください。

たとえば、ステートメントで `test-chef-automate` Chef Automate サーバーを指定するには、次の ARN を使用します。

```
"Resource": "arn:aws:opsworks-cm:us-west-2:123456789012:server/test-chef-automate/EXAMPLE-d1a2bEXAMPLE"
```

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

```
"Resource": "arn:aws:opsworks-cm:us-west-2:123456789012:server/*"
```

次の例では、CM OpsWorks サーバーのバックアップをリソースとして指定します。

```
"Resource": "arn:aws:opsworks-cm:us-west-2:123456789012:backup/test-chef-automate-server-2018-05-20T19:06:12.399Z"
```

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

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

 API アクションの多くが複数のリソースと関連します。複数リソースを単一ステートメントで指定するには、ARN をカンマで区切ります。

```
"Resource": [
      "resource1",
      "resource2"
```

 OpsWorks CM リソースタイプとその ARNs[AWS OpsWorks CM のアクション、リソース、および条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsopsworksconfigurationmanagement.html)」を参照してください。 **各リソースの ARN を指定できるアクションについては、*「IAM ユーザーガイド」*の[「AWS OpsWorks CM のアクション、リソース、および条件キー」](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsopsworksconfigurationmanagement.html)を参照してください。

### 条件キー
<a name="security_iam_id-based-policies-conditionkeys"></a>

OpsWorks CM には、ポリシーステートメントの `Condition`要素で使用できるサービス固有のコンテキストキーはありません。すべてのサービスで使用できるグローバルな条件コンテキストキーのリストについては、IAM ポリシーのリファレンスの「[AWS グローバル条件コンテキスト キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#AvailableKeys)」を参照してください。すべての AWS グローバル条件キーを確認するには、*「IAM ユーザーガイド*」の[AWS 「グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。

`Condition` 要素 (または `Condition` *ブロック*) を使用すると、ステートメントが有効な条件を指定できます。`Condition` エレメントはオプションです。イコールや以下などの[条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)を使用する条件表現を構築して、リクエスト内に値のあるポリシーの条件に一致させることができます。

1 つのステートメントに複数の `Condition` エレメントを指定する場合、または 1 つの `Condition` エレメントに複数のキーを指定する場合、 AWS が論理 `AND` 演算を使用してそれらを評価します。1 つの条件キーに複数の値を指定すると、 は論理`OR`オペレーションを使用して条件 AWS を評価します。ステートメントの権限が付与される前にすべての条件が満たされる必要があります。

 条件を指定する際にプレースホルダー変数も使用できます。たとえば、 ユーザー名でタグ付けされている場合のみ、リソースにアクセスする ユーザーアクセス許可を付与できます。詳細については*IAM ユーザーガイド*の[IAM ポリシーエレメント: 変数およびタグ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)を参照してください。

### 例
<a name="security_iam-id-based-policies-examples"></a>

 OpsWorks CM アイデンティティベースのポリシーの例を表示するには、「」を参照してください[AWS OpsWorks CM アイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)。

## OpsWorks CM およびリソースベースのポリシー
<a name="security_iam_resource-based-policies"></a>

OpsWorks CM はリソースベースのポリシーをサポートしていません。

リソースベースのポリシーとは、リソース上で指定するプリンシパルとしてのどのアクションをどの条件で実行できるかを指定する JSON ポリシードキュメントです。

## OpsWorks CM タグに基づく認可
<a name="security_iam_tags"></a>

CM リソースにタグをアタッチすることも、 OpsWorks CM OpsWorks へのリクエストでタグを渡すこともできます。タグに基づいてアクセスを制御するには、`aws:RequestTag/{{key-name}}`、または `aws:TagKeys` の条件キーを使用して、ポリシーの[条件要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)でタグ情報を指定します。CM リソース OpsWorks のタグ付けの詳細については、このガイド[AWS OpsWorks for Puppet Enterprise リソースでのタグの使用](opspup-tags.md)の[AWS OpsWorks for Chef Automate リソースでのタグの使用](opscm-tags.md)「」または「」を参照してください。

## OpsWorks CM IAM ロール
<a name="security_iam_roles"></a>

[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)は、特定のアクセス許可を持つ AWS アカウント内のエンティティです。

OpsWorks CM は 2 つのロールを使用します。
+ ユーザーの AWS アカウント内で機能するアクセス許可を OpsWorks CM サービスに付与するサービスロール。OpsWorks CM が提供するデフォルトのサービスロールを使用する場合、このロールの名前は `aws-opsworks-cm-service-role` です。
+ CM OpsWorks サービスが OpsWorks CM API を呼び出すことを許可するインスタンスプロファイルロール。このロールはAmazon S3 バケットを作成 CloudFormation するための Amazon S3 と へのアクセスを許可します。OpsWorks CM によって提供されるデフォルトのインスタンスプロファイルを使用する場合、このインスタンスプロファイルロールの名前は `aws-opsworks-cm-ec2-role` です。

OpsWorks CM はサービスにリンクされたロールを使用しません。

### OpsWorks CM による一時的な認証情報の使用
<a name="security_iam_roles-tempcreds"></a>

OpsWorks CM は一時的な認証情報の使用をサポートし、その機能を から継承します AWS Security Token Service。

一時的な認証情報を使用して、フェデレーションでサインインする、IAM 役割を引き受ける、またはクロスアカウント役割を引き受けることができます。一時的なセキュリティ認証情報を取得するには、[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) や [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) などの AWS STS API オペレーションを呼び出します。

### サービスリンクロール
<a name="security_iam_roles-service-linked"></a>

OpsWorks CM はサービスにリンクされたロールを使用しません。

[サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)を使用すると、 AWS サービスは他の サービスのリソースにアクセスして、ユーザーに代わってアクションを実行できます。サービスリンクロールは IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスリンクロールの許可を表示できますが、編集することはできません。

### サービスロール
<a name="security_iam_roles-service"></a>

この機能により、ユーザーに代わってサービスが[サービスロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)を引き受けることが許可されます。この役割により、サービスがお客様に代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービスロールはIAM アカウントに表示され、アカウントによって所有されます。つまり、IAM 管理者はこの役割の権限を変更できます。ただし、それにより、サービスの機能が損なわれる場合があります。

OpsWorks CM は 2 つのロールを使用します。
+ ユーザーの AWS アカウント内で機能するアクセス許可を OpsWorks CM サービスに付与するサービスロール。OpsWorks CM が提供するデフォルトのサービスロールを使用する場合、このロールの名前は `aws-opsworks-cm-service-role` です。
+ CM OpsWorks サービスが OpsWorks CM API を呼び出すことを許可するインスタンスプロファイルロール。このロールはAmazon S3 バケットを作成 CloudFormation するための Amazon S3 と へのアクセスを許可します。OpsWorks CM によって提供されるデフォルトのインスタンスプロファイルを使用する場合、このインスタンスプロファイルロールの名前は `aws-opsworks-cm-ec2-role` です。

### OpsWorks CM で IAM ロールを選択
<a name="security_iam_roles-choose"></a>

CM でサーバーを作成するときは、CM OpsWorks がユーザーに代わって Amazon EC2 OpsWorks にアクセスすることを許可するロールを選択する必要があります。以前に作成したサービスロールがある場合、 OpsWorks CM により、選択できるロールのリストが提供されます。ロールを指定していない場合は、OpsWorks CM がロールを作成します。Amazon EC2 インスタンスの起動と停止のためのアクセスを、許可するロールを選択することが重要です。詳細については、[Chef Automate サーバーの作成](gettingstarted-opscm-create.md)または[Puppet Enterprise マスターの作成](gettingstarted-opspup-create.md)を参照してください。