AWS RoboMaker の認証とアクセスコントロール - AWS RoboMaker

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

AWS RoboMaker の認証とアクセスコントロール

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全にコントロールするために役立つ AWS RoboMaker のサービスです。管理者は IAM を使用して、AWS RoboMaker リソースの使用について認証される(サインイン)者と認可される(アクセス許可を持つ)者を管理します。IAM は追加料金なしで提供される AWS アカウントの機能です。

重要

迅速に使用を開始するには、このページの入門情報を確認し、次に「IAM の使用開始」および「ポリシーとは」を参照してください。

トピック

認証とアクセスコントロールの概要

AWS RoboMaker は、幅広い機能を提供する AWS Identity and Access Management (IAM) と統合されます。

  • AWS アカウント にユーザーとグループを作成します。

  • AWS アカウント 内のユーザー間で AWS リソースを簡単に共有できます。

  • 各ユーザーに一意のセキュリティ認証情報を割り当てます。

  • サービスとリソースへの各ユーザーのアクセス権限を制御します。

  • AWS アカウント 内のすべてのユーザーに対する単一の請求書を受け取ります。

IAM の詳細については、以下を参照してください。

必要な許可

AWS RoboMaker を使用したり、自分や他のユーザーの認証とアクセスコントロールを管理したりするには、適切なアクセス許可を持っている必要があります。

AWS RoboMaker コンソールを使用するために必要なアクセス権限

AWS RoboMaker コンソールにアクセスするには、AWS アカウントの AWS RoboMaker リソースに関する詳細を表示して確認するための最小限のアクセス許可が必要です。最小限必要なアクセス許可よりも制限されたアイデンティティベースのアクセス許可ポリシーを作成すると、そのポリシーをアタッチしたエンティティに対してはコンソールが意図したとおりに機能しません。

AWS RoboMaker コンソールへの読み取り専用アクセスには、AWSRoboMakerReadOnlyAccess ポリシーを使用します。

IAM ユーザーがシミュレーションジョブを作成する場合は、そのユーザーに対して iam:PassRole アクセス許可を付与する必要があります。ロールの受け渡しの詳細については、「AWS サービスにロールを渡すアクセス許可をユーザーに許可する」を参照してください。

例えば、ユーザーに次のポリシーをアタッチできます。このポリシーは、シミュレーションジョブを作成するアクセス許可を提供します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/S3AndCloudWatchAccess" } ] }

AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソール許可を付与する必要はありません。代わりに、実行する API オペレーションに対応するアクセス許可のみが必要です。

コンソール の AWS RoboMaker でワールドを表示するために必要な許可

次のポリシーをユーザーにアタッチすれば、AWS RoboMaker コンソールで AWS RoboMaker ワールドを表示するために必要なアクセス権限を付与できます。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "robomaker: DescribeWorld" ], "Resource": "*", "Effect": "Allow" } ] }

AWS RoboMaker シミュレーションツールを使用するために必要なアクセス権限

シミュレーションを作成するために使用される IAM ユーザーまたはロールには、シミュレーションツールへのアクセス許可が自動的に与えられます。他のユーザーまたはロールの場合は、robomaker:CreateSimulationJob 権限を付与する必要があります。

認証の管理に必要なアクセス許可

自分の認証情報 (パスワード、アクセスキー、多要素認証 (MFA) デバイスなど) を管理するには、管理者から必要なアクセス許可を取得する必要があります。これらのアクセス許可が含まれているポリシーを表示するには、「認証情報の自己管理をユーザーに許可する」を参照してください。

AWS 管理者は、 IAMでユーザー、グループ、ロール、ポリシーを作成して管理するために IAM へのフルアクセスが必要です。AWS のすべてに対するフルアクセスを含む AdministratorAccess AWS マネージドポリシーを使用すべきです。このポリシーは、AWS Billing and Cost Management コンソールへのアクセスを提供しません。また、ルートユーザー認証情報を必要とするタスクを許可しません。詳細については、AWS 全般のリファレンス の「AWS アカウント ルートユーザー認証情報が必要な AWS タスク」を参照してください。

警告

AWS へのフルアクセスを持つのは、管理者ユーザーに限ります。このポリシーをアタッチされたユーザーは、だれでも、認証とアクセスコントロールを完全に管理するアクセス許可と、AWS のすべてのリソースを変更するアクセス許可を付与されます。このユーザーを作成する方法については、「IAM 管理者ユーザーを作成する」を参照してください。

アクセスコントロールに必要なアクセス許可

管理者から IAM ユーザー認証情報が提供されている場合は、アクセスできるリソースをコントロールするためのポリシーが IAM ユーザーにアタッチされています。ユーザーにアタッチされているポリシーを AWS Management Console で表示するには、以下のアクセス許可が必要です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": [ "arn:aws:iam::*:user/${aws:username}" ] }, { "Sid": "ListUsersViewGroupsAndPolicies", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

追加のアクセス許可が必要な場合は、管理者に依頼し、ポリシーを更新して必要なアクションへのアクセスを許可してもらいます。

シミュレーションジョブに必要なアクセス許可

シミュレーションジョブは、作成時に、以下のアクセス許可のある IAM ロールを引き受ける必要があります。

  • ロボットおよびシミュレーションアプリケーションバンドルが含まれるバケットの名前で my-input-bucket を置き換えます。

  • AWS RoboMaker が出力ファイルを書き込むバケットを参照するように my-output-bucket を置き換えます。

  • account# をアカウント番号に置き換えます。

パブリック ECR ジョブには、ecr-public:GetAuthorizationTokensts:GetServiceBearerToken、その他最終的な実装に必要な権限などの個別の権限が必要です。詳細については、「Amazon ECR ユーザーガイド」の「Public リポジトリポリシー」を参照してください。

Jobs with Private ECR images
{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::my-input-bucket" ], "Effect": "Allow" }, { "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::my-input-bucket/*" ], "Effect": "Allow" }, { "Action": "s3:Put*", "Resource": [ "arn:aws:s3:::my-output-bucket/*" ], "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:account#:log-group:/aws/robomaker/SimulationJobs*" ], "Effect": "Allow" }, { "Action": [ "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer" ], "Resource": "arn:partition:ecr:region:account#:repository/repository_name", "Effect": "Allow" } ] }
Jobs with Public ECR images
{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::my-input-bucket" ], "Effect": "Allow" }, { "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::my-input-bucket/*" ], "Effect": "Allow" }, { "Action": "s3:Put*", "Resource": [ "arn:aws:s3:::my-output-bucket/*" ], "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:account#:log-group:/aws/robomaker/SimulationJobs*" ], "Effect": "Allow" }, { "Action": [ "ecr-public:GetAuthorizationToken", "sts:GetServiceBearerToken" ], "Resource": "*", "Effect": "Allow" } ] }

このポリシーは、以下の信頼ポリシーを使用してロールにアタッチする必要があります。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "robomaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account#" // Account where the simulation job resource is created }, "StringEquals": { "aws:SourceArn": "arn:aws:robomaker:region:account#:simulation-job/*" } } } }

条件キーは、サービス間のトランザクション中に AWS サービスが混乱した代理として使用されるのを防ぐことができます。条件キーに関する詳しい情報については、「SourceAccount」と「SourceArn」を参照してください。

ROS アプリケーションまたは ROS コマンドラインからタグを使用するために必要なアクセス許可

シミュレーションジョブのタグ付け、タグ解除、一覧表示は、ROS コマンドラインまたは ROS アプリケーションの実行中に行うことができます。以下のアクセス許可を持つ IAM ロールが必要です。account# をアカウント番号に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "robomaker:TagResource", "robomaker:UntagResource", "robomaker:ListTagsForResource", ], "Resource": [ "arn:aws:robomaker:*:account#:simulation-job*" ], "Effect": "Allow" } ] }

このポリシーは、以下の信頼ポリシーを使用してロールにアタッチする必要があります。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "robomaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account#" // Account where the simulation job resource is created }, "StringEquals": { "aws:SourceArn": "arn:aws:robomaker:region:account#:simulation-job/*" } } } }

条件キーは、サービス間のトランザクション中に AWS サービスが混乱した代理として使用されるのを防ぐことができます。条件キーに関する詳しい情報については、「SourceAccount」と「SourceArn」を参照してください。

IAM で AWS RoboMaker を使用する方法について

サービスではいくつかの方法で IAM を使用できます。

  • アクション:ポリシーでのアクションの使用をサポートしています。これにより、管理者は、AWS RoboMaker でオペレーションを実行することをエンティティに許可するかどうかをコントロールできます。例えば、ポリシーを表示するために GetPolicy AWS API オペレーションを実行することをエンティティに許可する場合、管理者は iam:GetPolicy アクションを許可するポリシーをアタッチする必要があります。

  • リソースレベルのアクセス許可:リソースレベルのアクセス許可はサポートされていません。リソースレベルの許可では、ARN を使用してポリシー内で個々のリソースを指定できます。AWS RoboMaker ではこの機能がサポートされていないため、ポリシービジュアルエディタで [すべてのリソース] を選択する必要があります。JSON ポリシードキュメントでは、* 要素に Resource を使用する必要があります。

  • タグベースの承認:AWS RoboMaker はタグベースの承認をサポートされていません。この機能により、ポリシーの条件でリソースタグを使用できます。

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

  • サービスリンクロール:AWS RoboMaker はサービスロールをサポートします。この機能では、サービスリンクロールをユーザーに代わって引き受けることをサービスに許可します。このロールにより、サービスがユーザーに代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービスリンクロールは、IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールの許可を表示できますが、編集することはできません。

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

認証とアクセスコントロールのトラブルシューティング

次の情報は、IAM の使用に伴って発生する可能性がある一般的な問題の診断や修復に役立ちます。

AWS RoboMaker でアクションを実行する権限がない

アクションを実行する権限がないというエラーが AWS Management Console に表示された場合は、ユーザー名とパスワードの提供元の管理者に問い合わせる必要があります。

以下の例のエラーは、 ユーザー (my-user-name) がコンソールを使用して CreateRobotApplication アクションを実行するときに、そのためのアクセス許可がない場合に発生します。

User: arn:aws:iam::123456789012:user/my-user-name is not authorized to perform: aws-robomaker:CreateRobotApplication on resource: my-example-robot-application

この例の場合は、aws-robomaker:CreateRobotApplication アクションを使用して my-example-robot-application リソースへのアクセスを許可するように、管理者にポリシーを更新してもらいます。

管理者として AWS RoboMaker へのアクセスを他のユーザーに許可したい

AWS RoboMaker へのアクセスを他のユーザーに許可するには、アクセスを必要とする人またはアプリケーションの IAM エンティティ(ユーザーまたはロール)を作成する必要があります。ユーザーは、このエンティティの認証情報を使用して AWS にアクセスします。次に、AWS RoboMaker の適切なアクセス許可を付与するポリシーを、そのエンティティにアタッチする必要があります。

すぐに開始するには、「IAM の使用開始」を参照してください。