AWS Device Farm と IAM の連携方法 - AWS Device Farm

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

AWS Device Farm と IAM の連携方法

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

Device Farm のアイデンティティベースポリシー

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

アクション

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

JSON ポリシーの Action 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。ポリシーアクションの名前は通常、関連付けられた AWS API オペレーションと同じです。一致する API オペレーションのない許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは依存アクションと呼ばれます。

関連付けられたオペレーションを実行する権限を付与するポリシーでのアクションを含みます。

Device Farm のポリシーアクションは、アクションの前に以下のプレフィックス「devicefarm:」を使用します: 例えば、Device Farm デスクトップブラウザテスト CreateTestGridUrl API オペレーションで Selenium セッションを開始する権限を誰かに付与するには、そのポリシーに devicefarm:CreateTestGridUrl アクションを含めます。ポリシーステートメントにはAction または NotAction 要素を含める必要があります。Device Farm は、このサービスで実行できるタスクを記述する独自のアクションセットを定義します。

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

"Action": [ "devicefarm:action1", "devicefarm:action2"

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

"Action": "devicefarm:List*"

Device Farm アクションのリストを確認するには、「IAM サービス認可リファレンス」の「AWS Device Farmにより定義されるアクション」を参照してください。

リソース

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

Resource JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ステートメントにはResource または NotResource 要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

Amazon EC2 インスタンスのリソースには次のような ARN があります:

arn:${Partition}:ec2:${Region}:${Account}:instance/${InstanceId}

ARN の形式の詳細については、「Amazon リソースネーム (ARNs AWS 「サービス名前空間」を参照してください。

例えば、ステートメントで i-1234567890abcdef0 インスタンスを指定するには、次の ARN を使用します:

"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"

アカウントに属するすべてのインスタンスを指定するには、ワイルドカード (*) を使用します:

"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*"

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

"Resource": "*"

Amazon EC2 API アクションの多くが複数のリソースと関連します。例えば、AttachVolume では Amazon EBS ボリュームをインスタンスにアタッチするため、IAM ユーザーはボリュームおよびインスタンスを使用する権限が必要です。複数リソースを単一ステートメントで指定するには、ARN をカンマで区切ります。

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

Device Farm リソースのタイプとその ARN のリストを確認するには、「IAM サービス認可リファレンス」の「AWS Device Farmにより定義されるリソース」を参照してください。各リソースの ARN を指定できるアクションについては、「IAM サービス認可リファレンス」の「AWS Device Farmにより定義されるアクション」を参照してください。

条件キー

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

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

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

条件を指定する際にプレースホルダー変数も使用できます。例えば IAM ユーザーに、IAM ユーザー名がタグ付けされている場合のみリソースにアクセスできる権限を付与することができます。詳細については、「IAM ユーザーガイド」の「‬IAM ポリシーの要素: 変数およびタグ‭」‬を参照してください。

AWS は、グローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドAWS 「グローバル条件コンテキストキー」を参照してください。

Device Farm は独自の条件キーセットを定義し、一部のグローバル条件キーの使用もサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドAWS 「グローバル条件コンテキストキー」を参照してください。

Device Farm 条件キーのリストを確認するには、IAM サービス認可リファレンスの「 の条件キー AWS Device Farm」を参照してください。条件キーを使用できるアクションとリソースについては、IAM サービス認可リファレンスの「 で定義されるアクション AWS Device Farm」を参照してください。

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

Device Farm のリソースベースポリシー

Device Farm では、リソースベースポリシーはサポートされていません。

アクセスコントロールリスト

Device Farm では、アクセスコントロールリスト (ACL) はサポートされていません。

Device Farm タグに基づく認可

タグを Device Farm リソースにアタッチしたり、Device Farm へのリクエストでタグを渡したりできます。タグに基づいてアクセスを管理するには、aws:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの「条件要素」でタグ情報を提供します。Device Farm リソースのタギングの詳細については、「AWS Device Farm リソースのタギング」を参照してください。

リソースのタグに基づいてリソースへのアクセスを制限するためのアイデンティティベースポリシーの例を表示するには、「タグに基づく Device Farm デスクトップブラウザテストプロジェクトの表示」を参照してください。

Device Farm IAM ロール

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

Device Farm での一時的な認証情報の使用

Device Farm は、一時的な認証情報の使用をサポートしています。

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

サービスにリンクされた役割

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

Device Farm は、Device Farm デスクトップブラウザテスト機能でサービスリンクロールを使用します。これらのロールの詳細については、開発者ガイドの「Device Farm デスクトップブラウザテストのサービスリンクロールの使用」を参照してください。

サービス役割

Device Farm はサービスロールをサポートしていません。

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