翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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ユーザーガイド」のIAMJSON「 ポリシー要素リファレンス」を参照してください。
アクション
管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
JSON ポリシーの Action
要素は、ポリシーでアクセスを許可または拒否するために使用できるアクションを記述します。ポリシーアクションの名前は通常、関連する AWS APIオペレーションと同じです。一致するAPIオペレーションがないアクセス許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。
このアクションは、関連付けられたオペレーションを実行するための権限を付与するポリシーで使用されます。
App Runner のポリシーアクションは、アクションの前にプレフィックス を使用しますapprunner:
。例えば、Amazon EC2RunInstances
APIオペレーションで Amazon EC2インスタンスを実行するアクセス許可を付与するには、ポリシーに ec2:RunInstances
アクションを含めます。ポリシーステートメントには、Action
または NotAction
要素を含める必要があります。App Runner は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。
単一ステートメントに複数アクションを指定するには、次のようにカンマで区切ります:
"Action": [ "apprunner:CreateService", "apprunner:CreateConnection" ]
ワイルドカード (*) を使用して複数アクションを指定できます。例えば、Describe
という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。
"Action": "apprunner:Describe*"
App Runner アクションのリストを確認するには、「サービス認可リファレンス」の「 で定義されるアクション AWS App Runner」を参照してください。
リソース
管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
Resource
JSON ポリシー要素は、アクションが適用されるオブジェクトを指定します。ステートメントには、Resource
または NotResource
要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。
オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。
"Resource": "*"
App Runner リソースのARN構造は次のとおりです。
arn:aws:apprunner:
region
:account-id
:resource-type
/resource-name
[/resource-id
]
の形式の詳細についてはARNs、「」の「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」を参照してください。
条件キー
管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルが、どのリソースに対してどのような条件下でアクションを実行できるかということです。
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のメンバーCreateServiceAPIで を呼び出すとき、または 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 アクション () を呼び出す場合は、App Runner にインスタンスロールを提供する必要がありますAPIs。必要なアクセス許可をインスタンスロールに埋め込むか、独自のカスタムポリシーを作成してインスタンスロールで使用します。コードが使用する呼び出しを予測する方法はありません。したがって、この目的のために管理ポリシーは提供しません。
App Runner サービスを作成する前に、 IAM を使用して、必要なカスタムポリシーまたは埋め込みポリシーを持つサービスロールを作成します。その後、 InstanceConfigurationパラメータInstanceRoleArn
のメンバーCreateServiceAPIで を呼び出すとき、または 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 サービスの作成。