翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OpsWorks スタックがユーザーに代わって動作することを許可する
重要
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、AWS re:Post
OpsWorks スタックは、ユーザーに代わってさまざまな AWS サービスとやり取りする必要があります。例えば、 OpsWorks Stacks は、Amazon EC2 とやり取りしてインスタンスを作成し、Amazon CloudWatch とやり取りしてモニタリング統計を取得します。スタックを作成するときは、通常はサービスロールと呼ばれる IAM OpsWorks ロールを指定します。これにより、スタックに適切なアクセス許可が付与されます。
![[Add Stack] (スタックの追加) ページの IAM ロールリスト。](images/add-stack-iamrole.png)
新しいスタックのサービスロールを指定するときは、次のいずれかの操作を実行します。
-
以前に作成した標準サービスロールを指定します。
通常は、最初のスタックの作成時に標準サービスロールを作成し、そのロールを以降のすべてのスタックに使用できます。
-
IAM コンソールまたは API を使用して作成したカスタムサービスロールを指定します。
このアプローチは、標準サービスロールよりも制限されたアクセス許可を OpsWorks スタックに付与する場合に便利です。
注記
最初のスタックを作成するには、IAM [AdministratorAccess] ポリシーテンプレートでアクセス権限が定義されている必要があります。これらの権限により、 OpsWorks スタックは新しいIAMサービスロールを作成し、前述のようにユーザーをインポートすることができます。以降のすべてのスタックでは、ユーザーは最初のスタック用に作成されたサービスロールを選択できます。スタックを作成するための完全な管理権限は必要ではありません。
標準サービスロールにより、次のアクセス許可が付与されます。
-
すべての Amazon EC2 アクションを実行する (
ec2:*
)。 -
CloudWatch 統計を取得する (
cloudwatch:GetMetricStatistics
)。 -
Elastic Load Balancing を使用してサーバーにトラフィックを分散させる (
elasticloadbalancing:*
)。 -
Amazon RDS インスタンスをデータベースサーバーとして使用する (
rds:*
)。 -
IAM ロール (
iam:PassRole
) を使用して、 スタックと Amazon EC2 OpsWorks インスタンス間の安全な通信を提供します。
カスタムサービスロールを作成する場合は、スタックの管理に必要なすべてのアクセス許可が OpsWorks スタックに付与されていることを確認する必要があります。次の JSON 例は、標準サービスロールのポリシーステートメントです。カスタムサービスロールのポリシーステートメントには、少なくとも以下のアクセス権限が含まれていなければなりません。
また、サービスロールには信頼関係があります。 OpsWorks スタックによって作成されたサービスロールには、次の信頼関係があります。
OpsWorks スタックがユーザーに代わって動作するには、サービスロールにこの信頼関係が必要です。デフォルトのサービスロールを使用する場合は、信頼関係を変更しないでください。カスタムサービスロールを作成する場合は、以下のいずれかを実行することで信頼関係を指定します。
-
[AM console]
(IAMコンソール) で [Create role] (ロールの作成) ウィザードを使用している場合は、[Choose a use case] (ユースケースの選択) で [Opsworks] を選択します。このロールには適切な信頼関係がありますが、暗黙のうちにアタッチされているポリシーはありません。 OpsWorks スタックにユーザーに代わって行動する権限を付与するために、以下を含むカスタマー管理ポリシーを作成し、新しいロールにアタッチします。 -
AWS CloudFormation テンプレートを使用している場合は、テンプレートのリソースセクションに次のような内容を追加できます。
"Resources": { "OpsWorksServiceRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "opsworks.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "opsworks-service", "PolicyDocument": { ... } ] } }, } }