翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
App Runner と IAM の連携方法
IAM を使用して へのアクセスを管理する前に AWS App Runner、App Runner で使用できる IAM 機能を理解しておく必要があります。App Runner およびその他の AWS のサービスが IAM と連携する方法の概要を把握するには、「IAM ユーザーガイド」のAWS 「IAM と連携する のサービス」を参照してください。
その他の App Runner セキュリティトピックについては、「」を参照してくださいApp Runner のセキュリティ。
トピック
App Runner アイデンティティベースのポリシー
IAM アイデンティティベースのポリシーでは許可または拒否するアクションとリソース、またアクションを許可または拒否する条件を指定できます。App Runner は、特定のアクション、リソース、および条件キーをサポートしています。JSON ポリシーで使用するすべての要素については、「IAM ユーザーガイド」の「IAM JSON ポリシー要素のリファレンス」を参照してください。
アクション
管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
JSON ポリシーの Action
要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。ポリシーアクションの名前は通常、関連する AWS API オペレーションと同じです。一致する API オペレーションのない許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは依存アクションと呼ばれます。
このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。
App Runner のポリシーアクションは、アクションの前にプレフィックス を使用しますapprunner:
。たとえば、 Amazon EC2 RunInstances
API オペレーションで Amazon EC2 インスタンスを実行するためのアクセス許可をユーザーに付与するには、ポリシーに ec2:RunInstances
アクションを含めます。ポリシーステートメントには、Action
または NotAction
エレメントを含める必要があります。App Runner は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。
単一のステートメントに複数のアクションを指定するには次のようにコンマで区切ります。
"Action": [ "apprunner:CreateService", "apprunner:CreateConnection" ]
ワイルドカード (*) を使用して複数アクションを指定できます。例えば、Describe
という単語で始まるすべてのアクションを指定するには次のアクションを含めます。
"Action": "apprunner:Describe*"
App Runner アクションのリストを確認するには、「サービス認可リファレンス」の「 で定義されるアクション AWS App Runner」を参照してください。
リソース
管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルが、どのリソースに対してどのような条件下でアクションを実行できるかということです。
Resource
JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ステートメントにはResource
または NotResource
要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。
オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。
"Resource": "*"
App Runner リソースの ARN 構造は次のとおりです。
arn:aws:apprunner:
region
:account-id
:resource-type
/resource-name
[/resource-id
]
ARN の形式の詳細については、の「Amazon リソースネーム (ARNs) と AWS サービスの名前空間」を参照してくださいAWS 全般のリファレンス。
たとえば、 ステートメントで my-service
サービスを指定するには、次の ARN を使用します。
"Resource": "arn:aws:apprunner:us-east-1:123456789012:service/my-service"
特定のアカウントに属するすべてのサービスを指定するには、ワイルドカード (*) を使用します。
"Resource": "arn:aws:apprunner:us-east-1:123456789012:service/*"
リソースを作成するためのアクションなど、一部の App Runner アクションは、特定のリソースで実行できません。このような場合はワイルドカード *を使用する必要があります。
"Resource": "*"
App Runner リソースタイプとその ARNs「 で定義されるリソース AWS App Runner」を参照してください。 どのアクションで各リソースの ARN を指定できるかについては、「AWS App Runnerで定義されるアクション」を参照してください。
条件キー
管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルが、どのリソースに対してどのような条件下でアクションを実行できるかということです。
Condition
要素 (または Condition
ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition
要素はオプションです。イコールや未満などの 条件演算子 を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。
1 つのステートメントに複数の Condition
要素を指定する場合、または 1 つの Condition
要素に複数のキーを指定する場合、 AWS では AND
論理演算子を使用してそれらを評価します。1 つの条件キーに複数の値を指定すると、 は論理OR
オペレーションを使用して条件 AWS を評価します。ステートメントの権限が付与される前にすべての条件が満たされる必要があります。
条件を指定する際にプレースホルダー変数も使用できます。例えば IAM ユーザーに、IAM ユーザー名がタグ付けされている場合のみリソースにアクセスできる権限を付与することができます。詳細については、「IAM ユーザーガイド」の「IAM ポリシーの要素: 変数およびタグ」を参照してください。
AWS は、グローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、「IAM ユーザーガイド」のAWS 「 グローバル条件コンテキストキー」を参照してください。
App Runner は、いくつかのグローバル条件キーの使用をサポートしています。すべての AWS グローバル条件キーを確認するには、「IAM ユーザーガイド」のAWS 「グローバル条件コンテキストキー」を参照してください。
App Runner は、サービス固有の条件キーのセットを定義します。さらに、App Runner は、条件キーを使用して実装されるタグベースのアクセスコントロールをサポートしています。詳細については、「App Runner タグに基づく認可」を参照してください。
App Runner の条件キーのリストを確認するには、「サービス認可リファレンス」の「 の条件キー AWS App Runner」を参照してください。条件キーを使用できるアクションとリソースについては、「 で定義されるアクション AWS App Runner」を参照してください。
例
App Runner アイデンティティベースのポリシーの例を表示するには、「」を参照してくださいApp Runner アイデンティティベースのポリシーの例。
App Runner リソースベースのポリシー
App Runner はリソースベースのポリシーをサポートしていません。
App Runner タグに基づく認可
App Runner リソースにタグをアタッチするか、App Runner へのリクエストでタグを渡すことができます。タグに基づいてアクセスを制御するにはapprunner:ResourceTag/
、key-name
aws:RequestTag/
、または key-name
aws:TagKeys
の条件キーを使用して、ポリシーの条件要素でタグ情報を提供します。App Runner リソースのタグ付けの詳細については、「」を参照してくださいApp Runner サービスの設定。
リソースのタグに基づいてリソースへのアクセスを制限するためのアイデンティティベースポリシーの例を表示するには、「タグに基づく App Runner サービスへのアクセスの制御」を参照してください。
App Runner ユーザーのアクセス許可
App Runner を使用するには、IAM ユーザーに App Runner アクションへのアクセス許可が必要です。ユーザーに許可を付与する一般的な方法は、IAM ユーザーまたはグループにポリシーをアタッチすることです。ユーザーアクセス許可の管理の詳細については、「IAM ユーザーガイド」の「IAM ユーザーのアクセス許可の変更」を参照してください。
App Runner には、ユーザーにアタッチできる 2 つの管理ポリシーが用意されています。
-
AWSAppRunnerReadOnlyAccess
– App Runner リソースの詳細を一覧表示および表示するアクセス許可を付与します。 -
AWSAppRunnerFullAccess
– すべての App Runner アクションにアクセス許可を付与します。
ユーザーのアクセス許可をより詳細に制御するには、カスタムポリシーを作成してユーザーにアタッチします。詳細については、「IAM ユーザーガイド」の「IAM ポリシーの作成」を参照してください。
ユーザーポリシーの例については、「」を参照してくださいユーザーポリシー。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apprunner:List*", "apprunner:Describe*" ], "Resource": "*" } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": [ "arn:aws:iam::*:role/aws-service-role/apprunner.amazonaws.com/AWSServiceRoleForAppRunner", "arn:aws:iam::*:role/aws-service-role/networking.apprunner.amazonaws.com/AWSServiceRoleForAppRunnerNetworking" ], "Condition": { "StringLike": { "iam:AWSServiceName": [ "apprunner.amazonaws.com", "networking.apprunner.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringLike": { "iam:PassedToService": "apprunner.amazonaws.com" } } }, { "Sid": "AppRunnerAdminAccess", "Effect": "Allow", "Action": "apprunner:*", "Resource": "*" } ] }
App Runner IAM ロール
IAM ロールは、特定のアクセス許可 AWS アカウント を持つ 内のエンティティです。
サービスにリンクされた役割
サービスにリンクされたロールを使用すると、 AWS サービスは他の サービスのリソースにアクセスして、ユーザーに代わってアクションを実行できます。サービスリンクロールは IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスリンクロールの許可を表示できますが、編集することはできません。
App Runner は、サービスにリンクされたロールをサポートしています。App Runner のサービスにリンクされたロールの作成または管理については、「」を参照してくださいApp Runner のサービスにリンクされたロールの使用。
サービス役割
この機能により、ユーザーに代わってサービスがサービス役割を引き受けることが許可されます。この役割により、サービスがお客様に代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービス役割はIAM アカウントに表示され、アカウントによって所有されます。つまり、IAM ユーザーはこのロールのアクセス許可を変更できます。ただし、それにより、サービスの機能が損なわれる場合があります。
App Runner は、いくつかのサービスロールをサポートしています。
アクセスロール
アクセスロールは、App Runner がアカウントの Amazon Elastic Container Registry (Amazon ECR) 内のイメージにアクセスするために使用するロールです。Amazon ECR 内のイメージにアクセスするために必要であり、Amazon ECR Public では必要ありません。Amazon ECR のイメージに基づいてサービスを作成する前に、IAM を使用してサービスロールを作成し、その中に AWSAppRunnerServicePolicyForECRAccess
マネージドポリシーを使用します。その後、SourceConfiguration パラメータの AuthenticationConfiguration メンバーで CreateService API を呼び出すとき、または App Runner コンソールを使用してサービスを作成するときに、このロールを App Runner に渡すことができます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:DescribeImages", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
注記
アクセスロールに独自のカスタムポリシーを作成する場合は、必ず ecr:GetAuthorizationToken
アクション"Resource": "*"
に を指定してください。トークンは、アクセスできる任意の Amazon ECR レジストリへのアクセスに使用できます。
アクセスロールを作成するときは、App Runner サービスプリンシパルを信頼されたエンティティbuild.apprunner.amazonaws.com
として宣言する信頼ポリシーを必ず追加してください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "build.apprunner.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
App Runner コンソールを使用してサービスを作成する場合、コンソールは自動的にアクセスロールを作成し、新しいサービス用に選択できます。コンソールにはアカウント内の他のロールも一覧表示され、必要に応じて別のロールを選択できます。
インスタンスロール
インスタンスロールは、App Runner がサービスのコンピューティングインスタンスに必要な AWS サービスアクションへのアクセス許可を提供するために使用するオプションのロールです。アプリケーションコードが AWS アクション (APIs) を呼び出す場合は、App Runner にインスタンスロールを提供する必要があります。必要なアクセス許可をインスタンスロールに埋め込むか、独自のカスタムポリシーを作成してインスタンスロールで使用します。コードが使用する呼び出しを予測する方法はありません。したがって、この目的のために管理ポリシーは提供しません。
App Runner サービスを作成する前に、IAM を使用して、必要なカスタムポリシーまたは埋め込みポリシーを持つサービスロールを作成します。その後、InstanceConfiguration パラメータInstanceRoleArn
のメンバーで CreateService API を呼び出すとき、または App Runner コンソールを使用してサービスを作成するときに、このロールをインスタンスロールとして App Runner に渡すことができます。
インスタンスロールを作成するときは、App Runner サービスプリンシパルを信頼されたエンティティtasks.apprunner.amazonaws.com
として宣言する信頼ポリシーを必ず追加してください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "tasks.apprunner.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
App Runner コンソールを使用してサービスを作成する場合、コンソールにはアカウントのロールが一覧表示され、この目的のために作成したロールを選択できます。
サービスの作成については、「」を参照してくださいApp Runner サービスの作成。