Amazon S3 on Outposts でのサービスにリンクされたロールの使用
Amazon S3 on Outposts は AWS Identity and Access Management (IAM) サービスにリンクされたロールを使用します。サービスにリンクされたロールは、S3 on Outposts に直接リンクされた一意のタイプの IAM ロールです。サービスにリンクされたロールは、S3 on Outposts によって事前定義されており、ユーザーの代わりにサービスから他の AWS のサービスを呼び出す必要のあるアクセス許可がすべて含まれています。
サービスにリンクされたロールを使用することで、必要なアクセス許可を手動で追加する必要がなくなるため、S3 on Outposts の設定が簡単になります。S3 on Outposts は、サービスにリンクされたロールのアクセス許可を定義します。特に定義されている場合を除き、S3 on Outposts のみがそのロールを引き受けることができます。定義したアクセス許可には、信頼ポリシーと許可ポリシーが含まれます。この許可ポリシーを他の IAM エンティティにアタッチすることはできません。
サービスリンクロールは、まずその関連リソースを削除しなければ削除できません。これにより、リソースへのアクセス許可を誤って削除できないようになるため、S3 on Outposts リソースが保護されます。
サービスにリンクされたロールをサポートする他のサービスについては、「IAM と連動する AWS のサービス」を参照し、Service-linked roles (サービスにリンクされたロール) の列内で Yes (はい) と表記されたサービスを確認してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[Yes] (はい) リンクを選択します。
S3 on Outposts のサービスにリンクされたロールのアクセス許可
S3 on Outposts は、AWSServiceRoleForS3OnOutposts という名前のロールを使用して、ユーザーに代わってネットワークリソースを管理します。
AWSServiceRoleForS3OnOutposts
サービスにリンクされたロールは、ロールの引き受けについて以下のサービスを信頼します。
-
s3-outposts.amazonaws.com
AWSS3OnOutpostsServiceRolePolicy
というロールアクセス許可ポリシーは、S3 on Outposts に、指定されたリソースで次のアクションを完了することを許可します。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeCoipPools", "ec2:GetCoipPoolUsage", "ec2:DescribeAddresses", "ec2:DescribeLocalGatewayRouteTableVpcAssociations" ], "Resource": "*", "Sid": "DescribeVpcResources" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Sid": "CreateNetworkInterface" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:RequestTag/CreatedBy": "S3 On Outposts" } }, "Sid": "CreateTagsForCreateNetworkInterface" }, { "Effect": "Allow", "Action": [ "ec2:AllocateAddress" ], "Resource": [ "arn:aws:ec2:*:*:ipv4pool-ec2/*" ], "Sid": "AllocateIpAddress" }, { "Effect": "Allow", "Action": [ "ec2:AllocateAddress" ], "Resource": [ "arn:aws:ec2:*:*:elastic-ip/*" ], "Condition": { "StringEquals": { "aws:RequestTag/CreatedBy": "S3 On Outposts" } }, "Sid": "CreateTagsForAllocateIpAddress" }, { "Effect": "Allow", "Action": [ "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DisassociateAddress", "ec2:ReleaseAddress", "ec2:AssociateAddress" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/CreatedBy": "S3 On Outposts" } }, "Sid": "ReleaseVpcResources" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "*", "Condition": { "StringEquals": { "ec2:CreateAction": [ "CreateNetworkInterface", "AllocateAddress" ], "aws:RequestTag/CreatedBy": [ "S3 On Outposts" ] } }, "Sid": "CreateTags" } ] }
サービスにリンクされたロールの作成、編集、削除を IAM エンティティ (ロールなど) に許可するには、アクセス許可を設定する必要があります。詳細については、 IAM ユーザーガイド の「サービスリンクロールのアクセス許可」を参照してください。
S3 on Outposts でのサービスにリンクされたロールの作成
サービスリンクロールを手動で作成する必要はありません。AWS Management Console、AWS CLI、または AWS API で S3 on Outposts エンドポイントを作成すると、S3 on Outposts によってサービスにリンクされたロールが作成されます。
このサービスリンクロールを削除した後で再度作成する必要が生じた場合は、同じ方法でアカウントにロールを再作成できます。S3 on Outposts エンドポイントを作成すると、S3 on Outposts によってサービスにリンクされたロールが再び作成されます。
IAM コンソールを使用して、S3 on Outposts ユースケースでサービスにリンクされたロールを作成することもできます。AWS CLI または AWS API では、s3-outposts.amazonaws.com
サービス名を使用してサービスにリンクされたロールを作成します。詳細については、IAM ユーザーガイドの「サービスリンクロールの作成」を参照してください。このサービスリンクロールを削除しても、同じ方法でロールを再作成できます。
S3 on Outposts でのサービスにリンクされたロールの編集
S3 on Outposts では、サービスにリンクされたロール AWSServiceRoleForS3OnOutposts
を編集することはできません。さまざまなエンティティが参照する可能性があるため、これにはロール名が含まれます。ただし、IAM を使用したロール記述の編集はできます。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの編集」を参照してください。
S3 on Outposts でのサービスにリンクされたロールの削除
サービスリンクロールが必要な機能またはサービスが不要になった場合には、そのロールを削除することをお勧めします。そうすることで、積極的にモニタリングまたは保守されていない未使用のエンティティを排除できます。ただし、手動で削除する前に、サービスリンクロールのリソースをクリーンアップする必要があります。
注記
リソースを削除する際に、S3 on Outposts サービスでそのロールが使用されている場合、削除は失敗することがあります。失敗した場合は、数分待ってから操作を再試行してください。
AWSServiceRoleForS3OnOutposts が使用する S3 on Outposts リソースを削除するには
-
すべての AWS リージョンの AWS アカウントで、Outposts エンドポイントの S3 を削除します。
-
IAM を使用して、サービスにリンクされたロールを削除します。
IAM コンソール、AWS CLI、または AWS API を使用して、
AWSServiceRoleForS3OnOutposts
サービスリンクロールを削除します。詳細については、 IAM ユーザーガイド の「サービスにリンクされたロールの削除」を参照してください。
S3 on Outposts でのサービスにリンクされたロールをサポートするリージョン
S3 on Outposts は、そのサービスを利用できるすべての AWS リージョンで、サービスにリンクされたロールの使用をサポートします。詳細については、「S3 on Outposts のリージョンとエンドポイント」を参照してください。