EC2 Image BuilderとIAMの仕組み - EC2 Image Builder

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

EC2 Image BuilderとIAMの仕組み

IAMを使用してImage Builderへのアクセスを管理する前に、Image Builderで使用できるIAM機能について確認してください。

Image Builder AWS やその他のサービスがほとんどの IAM 機能でどのように動作するかを大まかに把握するには、IAM ユーザーガイドの「IAM AWS と連携するサービス」を参照してください。

Image Builder のアイデンティティベースのポリシー

アイデンティティベースポリシーをサポートする

Yes

アイデンティティベースポリシーは、IAM ユーザー、ユーザーのグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースのポリシーを作成する方法については、「IAM ユーザーガイド」の「IAM ポリシーの作成」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。プリンシパルは、それが添付されているユーザーまたはロールに適用されるため、アイデンティティベースのポリシーでは指定できません。JSON ポリシーで使用できるすべての要素について学ぶには、「IAM ユーザーガイド」の「IAM JSON ポリシーの要素のリファレンス」を参照してください。

Image Builder のアイデンティティベースのポリシー例

Image Builder ID ベースのポリシーの例を見るには、Image Builder のアイデンティティベースのポリシーを参照してください。

Image Builder 内のリソースベースのポリシー

リソースベースのポリシーのサポート

なし

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーが添付されているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、またはが含まれます。 AWS のサービス

クロスアカウントアクセスを有効にするには、アカウント全体、または別のアカウントの IAM エンティティをリソースベースのポリシーのプリンシパルとして指定します。リソースベースのポリシーにクロスアカウントのプリンシパルを追加しても、信頼関係は半分しか確立されない点に注意してください。プリンシパルとリソースが異なる場合 AWS アカウント、信頼されたアカウントの IAM 管理者は、プリンシパルエンティティ (ユーザーまたはロール) にリソースへのアクセス権限を付与する必要もあります。IAM 管理者は、アイデンティティベースのポリシーをエンティティにアタッチすることで権限を付与します。ただし、リソースベースのポリシーで、同じアカウントのプリンシパルへのアクセス権が付与されている場合は、アイデンティティベースのポリシーを追加する必要はありません。詳細については、「IAM ユーザーガイド」の「IAM ロールとリソースベースのポリシーとの相違点」を参照してください。

Image Builder ポリシーアクション

ポリシーアクションに対するサポート

Yes

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

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

このアクションは、関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

Image Builderのアクションの一覧は、Service Authorization ReferenceのEC2 Image Builderで定義されたアクションを参照してください。

Image Builder のポリシーアクションは、アクションの前に次の接頭辞を使用します:

imagebuilder

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

"Action": [ "imagebuilder:action1", "imagebuilder:action2" ]

Image Builder ID ベースのポリシーの例を見るには、Image Builder のアイデンティティベースのポリシーを参照してください。

Image Builder ポリシーリソース

ポリシーリソースに対するサポート

Yes

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

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

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

"Resource": "*"

Image BuilderのリソースタイプとそのARNの一覧は、Service Authorization ReferenceのResources defined by EC2 Image Builderを参照してください。各リソースのARNをどのアクションで指定できるかについては、EC2 Image Builderで定義されているアクションを参照してください。

Image Builder ID ベースのポリシーの例を見るには、Image Builder のアイデンティティベースのポリシーを参照してください。

Image Builderのポリシー条件キー

サービス固有のポリシー条件キーのサポート

はい

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

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

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

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

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

Image Builderの条件キーの一覧は、Service Authorization ReferenceCondition keys for EC2 Image Builderを参照してください。どのアクションとリソースで条件キーを使用できるかについては、EC2 Image Builderで定義されたアクションを参照してください。

Image Builder ID ベースのポリシーの例を見るには、Image Builder のアイデンティティベースのポリシーを参照してください。

Image Builder の ACL

ACL のサポート

No

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

Image Builder 付き

ABAC (ポリシー内のタグ) のサポート

部分的

属性ベースのアクセスコントロール (ABAC) は、属性に基づいて権限を定義する認可戦略です。では AWS、これらの属性はタグと呼ばれます。IAM エンティティ (ユーザーまたはロール) AWS や多くのリソースにタグを付けることができます。エンティティとリソースのタグ付けは、ABAC の最初の手順です。次に、プリンシパルのタグがアクセスを試行するリソースのタグと一致したときにオペレーションを許可するよう、ABAC ポリシーを設計します。

ABAC は、急成長する環境やポリシー管理が煩雑になる状況で役立ちます。

タグに基づいてアクセスを管理するには、aws:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeysの条件キーを使用して、ポリシーの 条件要素 でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値は Yes です。サービスが一部のリソースタイプに対してのみ 3 つの条件キーすべてをサポートする場合、値は Partial です。

ABAC の詳細については、IAM ユーザーガイドの「ABAC とは? 」を参照してください。ABAC をセットアップするステップを説明するチュートリアルについては、「IAM ユーザーガイド」の「属性に基づくアクセスコントロール (ABAC) を使用する」を参照してください。

Image Builder での一時的な認証情報の使用

一時的な認証情報のサポート

Yes

AWS のサービス 一時的な認証情報を使用してサインインすると機能しないものもあります。 AWS のサービス 一時的な認証情報で機能するものなど、追加情報については、『IAM ユーザーガイド』の「IAM と連携する」を参照してくださいAWS のサービス 。

ユーザー名とパスワード以外の方法でにサインインすると、 AWS Management Console 一時的な認証情報が使用されることになります。たとえば、会社のシングルサインオン (SSO) AWS リンクを使用してアクセスすると、そのプロセスによって一時的な認証情報が自動的に作成されます。また、ユーザーとしてコンソールにサインインしてからロールを切り替える場合も、一時的な認証情報が自動的に作成されます。ロールの切り替えに関する詳細については、 IAM ユーザーガイド の「ロールへの切り替え (コンソール)」を参照してください。

または API を使用して一時的な認証情報を手動で作成できます。 AWS CLI AWS その後、その一時的な認証情報を使用してアクセスできます AWS。 AWS 長期アクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをおすすめします。詳細については、「IAM の一時的セキュリティ認証情報」を参照してください。

Image Builderのクロスサービスプリンシパル権限

フォワードアクセスセッション (FAS) をサポート

Yes

IAM ユーザーまたはロールを使用してアクションを実行する場合 AWS、そのユーザーはプリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。FASは、を呼び出したプリンシパルの権限と AWS のサービス、 AWS のサービス ダウンストリームサービスにリクエストを行うリクエストを組み合わせて使用します。FASリクエストは、 AWS のサービス サービスが他のユーザーとのやりとりやリソースとのやり取りを必要とするリクエストを受信したときにのみ行われます。この場合、両方のアクションを実行するためのアクセス許可が必要です。FAS リクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。

Image Builder サービスロール

サービスロールに対するサポート

あり

サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービスにアクセス許可を委任するロールの作成」を参照してください。

警告

サービスロールの権限を変更すると、Image Builderの機能が壊れる可能性があります。サービスロールの編集は、Image Builderのガイダンスに従って行ってください。

Image Builderのサービス連動ロール

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

いいえ

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

Image Builderサービス連携ロールの詳細については、EC2 Image Builder サービスにリンクされたロールを使用するを参照。してください。

Image Builder のアイデンティティベースのポリシー

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

アクション

Image Builder のポリシーアクションは、アクションの前に以下の接頭辞を使用します: imagebuilder:. ポリシーステートメントには、Action または NotAction 要素を含める必要があります。Image Builderは、このサービスで実行できるタスクを記述した独自のアクションセットを定義しています。

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

"Action": [ "imagebuilder:action1", "imagebuilder:action2"

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

"Action": "imagebuilder:List*"

Image Builderのアクションのリストは、IAMユーザーガイドのアクション、リソース、および AWS のサービスの条件キーを参照してください。

ポリシーを使用したアクセスの管理

ポリシーを作成して IAM ID AWS AWS またはリソースにアタッチしてアクセスを管理する方法の詳細については、IAM ユーザーガイドの「ポリシーと権限」を参照してください。

インスタンスプロファイルに関連付ける IAM ロールには、イメージに含まれるビルドコンポーネントとテストコンポーネントを実行する権限が必要です。インスタンスプロファイルに関連付けられている IAM ロールに対し、次の IAM ロールポリシーをアタッチする必要があります。

  • EC2InstanceProfileForImageBuilder

  • EC2InstanceProfileForImageBuilderECRContainerBuilds

  • AmazonSSMManagedInstanceCore

リソース

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

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

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

"Resource": "*"

Image Builderインスタンスリソースは、以下のAmazon リソースネーム (ARN))を持ちます。

arn:aws:imagebuilder:region:account-id:resource:resource-id

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

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

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

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

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

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

"Resource": "*"

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

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

条件キー

Image Builderはサービス固有の条件キーを提供し、いくつかのグローバル条件キーの使用をサポートします。 AWS すべてのグローバル条件キーを確認するには、IAM ユーザーガイドの「AWS グローバル条件コンテキストキー」を参照してください。以下のサービス別条件キーがある。

イメージビルダー:CreatedResourceTagKeys

文字列演算子で動作します。

リクエストにタグキーがあるかどうかでアクセスをフィルターするには、 このキーを使用します。これにより、Image Builder が作成するリソースを管理できます。

利用可能性 - このキーはCreateInfrastrucutreConfigurationUpdateInfrastructureConfigurationのAPIでのみ利用可能です。

イメージビルダー:/CreatedResourceTag<key>

文字列演算子で動作します。

このキーを使用して、Image Builder が作成したリソースに添付されているタグのキーと値のペアでアクセスをフィルタリングします。これにより、定義済みのタグを使用して Image Builder リソースを管理できます。

利用可能性 - このキーはCreateInfrastrucutreConfigurationUpdateInfrastructureConfigurationのAPIでのみ利用可能です。

イメージビルダー:EC2 MetadataHttpTokens

文字列演算子で動作します。

このキーを使用して、リクエストで指定された EC2 インスタンスメタデータの HTTP トークン要件によってアクセスをフィルタリングします。

このキーの値はoptionalrequiredのどちらかなります。

利用可能性 - このキーはCreateInfrastrucutreConfigurationUpdateInfrastructureConfigurationのAPIでのみ利用可能です。

イメージビルダー:StatusTopicArn

文字列演算子で動作します。

このキーを使用して、端末の状態通知を公開するリクエストで、SNSトピックARNによるアクセスをフィルタリングします。

利用可能性 - このキーはCreateInfrastrucutreConfigurationUpdateInfrastructureConfigurationのAPIでのみ利用可能です。

Image Builder ID ベースのポリシーの例を見るには、EC2 Image BuilderのIDベースのポリシーを参照してください。

Image Builder 内のリソースベースのポリシー

リソースベースのポリシーは、指定されたプリンシパルが Image Builder リソースに対してどのようなアクションをどのような条件で実行できるかを指定します。Image Builder は、コンポーネント、イメージ、およびイメージレシピのリソースベースのアクセス権限ポリシーをサポートします。リソースベースのポリシーでは、リソースごとに他の アカウントに使用許可を付与することができます。リソースベースのポリシーを使用して、 AWS サービスがコンポーネント、イメージ、およびイメージレシピにアクセスすることを許可することもできます。

リソースベースのポリシーをコンポーネント、イメージ、またはイメージレシピにアタッチする方法については、「EC2 Image Builder リソースを共有」を参照してください。

注記

Image Builder を使用してリソースポリシーを更新すると、更新は RAM コンソールに表示されます。

Image Builder タグに基づく認可

タグを Image Builder リソースに添付したり、リクエストでタグを Image Builder に渡すことができます。タグに基づいてアクセスを管理するには、imagebuilder:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeysの条件キーを使用して、ポリシーの 条件要素 でタグ情報を提供します。Image Builder リソースのタグ付けの詳細については、(AWS CLI)リソースをタグ付けします。を参照してください。

Image Builder IAM ロール

IAM ロールは、 AWS アカウント 特定の権限を持つ社内エンティティです。

Image Builder での一時的な認証情報の使用

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

サービスリンクロール

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

Image Builderはサービスリンクされたロールをサポートします。Image Builderサービス連動ロールの作成または管理については、EC2 Image Builder サービスにリンクされたロールを使用するを参照してください。

サービスロール

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