CM OpsWorks と IAM の連携方法 - AWS OpsWorks

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

CM OpsWorks と IAM の連携方法

IAM を使用して CM OpsWorks へのアクセスを管理する前に、CM で使用できる IAM OpsWorks 機能を理解しておく必要があります。 OpsWorks CM およびその他の AWS のサービスが IAM と連携する方法の概要を把握するには、「IAM ユーザーガイド」のAWS 「IAM と連携する のサービス」を参照してください。

OpsWorks CM アイデンティティベースのポリシー

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

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

アクション

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のアクション、リソース、および条件キー」を参照してください。

リソース

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

CM サーバーまたはバックアップの Amazon リソースナンバー (ARN) OpsWorks を取得するには、 DescribeServers または DescribeBackups 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 「サービス名前空間」を参照してください。

たとえば、ステートメントで 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 リソースタイプとその ARNsAWS OpsWorks CM のアクション、リソース、および条件キー」を参照してください。 各リソースの ARN を指定できるアクションについては、「IAM ユーザーガイド」「AWS OpsWorks CM のアクション、リソース、および条件キー」を参照してください。

条件キー

OpsWorks CM には、ポリシーステートメントの Condition要素で使用できるサービス固有のコンテキストキーはありません。すべてのサービスで使用できるグローバルな条件コンテキストキーのリストについては、IAM ポリシーのリファレンスの「AWS グローバル条件コンテキスト キー」を参照してください。すべての AWS グローバル条件キーを確認するには、「IAM ユーザーガイド」のAWS 「グローバル条件コンテキストキー」を参照してください。

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

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

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

OpsWorks CM アイデンティティベースのポリシーの例を表示するには、「」を参照してくださいAWS OpsWorks CM アイデンティティベースのポリシーの例

OpsWorks CM およびリソースベースのポリシー

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

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

OpsWorks CM タグに基づく認可

CM リソースにタグをアタッチするか、 OpsWorks CM OpsWorks へのリクエストでタグを渡すことができます。タグに基づいてアクセスを制御するには、aws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの条件要素でタグ情報を指定します。CM リソース OpsWorks のタグ付けの詳細については、このガイドAWS OpsWorks for Puppet Enterprise リソースでのタグの使用AWS OpsWorks for Chef Automate リソースでのタグの使用「」または「」を参照してください。

OpsWorks CM IAM ロール

IAM ロールは、特定のアクセス許可を持つ AWS アカウント内のエンティティです。

OpsWorks CM は 2 つのロールを使用します。

  • ユーザーの AWS アカウント内で作業するためのアクセス許可を OpsWorks CM サービスに付与するサービスロール。OpsWorks CM が提供するデフォルトのサービスロールを使用する場合、このロールの名前は aws-opsworks-cm-service-role です。

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

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

OpsWorks CM による一時的な認証情報の使用

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

一時的な認証情報を使用して、フェデレーションでサインインする、IAM 役割を引き受ける、またはクロスアカウント役割を引き受けることができます。一時的なセキュリティ認証情報を取得するには、AssumeRoleGetFederationToken などの AWS STS API オペレーションを呼び出します。

サービスリンクロール

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

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

サービスロール

この機能により、ユーザーに代わってサービスがサービス役割を引き受けることが許可されます。この役割により、サービスがお客様に代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービス役割はIAM アカウントに表示され、アカウントによって所有されます。つまり、IAM 管理者はこの役割の権限を変更できます。ただし、それにより、サービスの機能が損なわれる場合があります。

OpsWorks CM は 2 つのロールを使用します。

  • ユーザーの AWS アカウント内で作業するためのアクセス許可を OpsWorks CM サービスに付与するサービスロール。OpsWorks CM が提供するデフォルトのサービスロールを使用する場合、このロールの名前は aws-opsworks-cm-service-role です。

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

OpsWorks CM で IAM ロールを選択

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