AWS OpsWorksサービス間の混乱した代理の防止 - AWS OpsWorks

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

AWS OpsWorksサービス間の混乱した代理の防止

重要

AWS OpsWorks Stacks新規顧客は受け付けていません。既存のお客様は、2024 年 5 月 26 OpsWorks 日まではコンソール、API、CLI、CloudFormationおよびリソースを通常どおり使用できますが、2024 年 5 月 26 日以降は廃止されます。この移行に備えて、AWS Systems Managerできるだけ早くスタックをに移行することをおすすめします。詳細については、「AWS OpsWorks Stacksサポート終了に関するよくある質問」および「AWS OpsWorks StacksAWS Systems Managerアプリケーションマネージャーへのアプリケーションの移行」を参照してください。

混乱した代理問題は、アクションを実行する許可を持たないエンティティが、より特権のあるエンティティにアクションを実行するように強制できるセキュリティの問題です。AWS では、サービス間でのなりすましが、混乱した代理問題を生じさせることがあります。サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別の顧客のリソースに対する処理を実行するように操作される場合があります。これを防ぐために AWS では、顧客のすべてのサービスのデータを保護するのに役立つツールを提供しています。これには、アカウントのリソースへのアクセス権が付与されたサービスプリンシパルを使用します。

aws:SourceArnaws:SourceAccountスタックアクセスポリシーでおよびグローバル条件コンテキストキーを使用して、AWS OpsWorksスタックが別のサービスにスタックに与える権限を制限することをお勧めします。aws:SourceArn の値に Amazon S3 バケット ARN などのアカウント ID が含まれていない場合は、両方のグローバル条件コンテキストキーを使用して、アクセス許可を制限する必要があります。同じポリシーステートメントでこれらのグローバル条件コンテキストキーの両方を使用し、アカウント ID にaws:SourceArn の値が含まれていない場合、aws:SourceAccount 値と aws:SourceArn 値の中のアカウントには、同じアカウント ID を使用する必要があります。クロスサービスのアクセスにスタックを 1 aws:SourceArn つだけ関連付けたい場合は、、、、。クロスサービスの使用のために、aws:SourceAccountアカウント内の任意のスタックを関連づけたい場合は、を使用します。

AWS OpsWorksの値はスタックの ARN aws:SourceArn でなければなりません。

混乱した代理問題から保護するための最も効果的な方法は、AWS OpsWorks Stacksスタックの完全な ARN を指定しながら、aws:SourceArnグローバル条件コンテキストキーを使用することです。ARN が分からない場合や、複数のスタック ARN を指定する場合は、ARN の不明部分にワイルドカード (*) を使ったaws:SourceArnグローバル条件コンテキストキーを使用します。例えば、arn:aws:servicename:*:123456789012:*

次のセクションでは、AWS OpsWorks Stacks aws:SourceArn で、aws:SourceAccountおよびグローバル条件コンテキストキーを使用して、混乱した代理問題を回避する方法を示します。

AWS OpsWorksスタック内の混乱した副次攻撃を防ぐ

このセクションでは、Stacksでの混乱した代理攻撃を防ぐためにどのように役立つかを説明し、AWS OpsWorks Stackへのアクセスに使用しているIAMロールにアタッチできるアクセス権限ポリシーの例を紹介します。AWS OpsWorksセキュリティのベストプラクティスとして、IAM ロールと他のサービスとの信頼関係にキーを、aws:SourceArnaws:SourceAccountおよび条件キーを追加することをおすすめします。信頼関係により、AWS OpsWorksスタックは、AWS OpsWorksスタックスタックの作成や管理に必要なアクションを他のサービスで実行する役割を担うことができます。

aws:SourceArnaws:SourceAccount信頼関係を編集してキーを追加および条件付けるには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 左のナビゲーションペインで、[Roles] (ロール) を選択します。

  3. 検索ボックスで、AWS OpsWorksスタックへのアクセスに使用するロールを検索します。AWS管理対象ロールはですaws-opsworks-service-role

  4. ロールの概要ページで、「信頼関係」タブを選択します。

  5. 信頼関係」タブで、「信頼ポリシーの編集」を選択します。

  6. 信頼ポリシーの編集ページでaws:SourceArnaws:SourceAccountまたは条件キーのうち少なくとも 1 つをポリシーに追加します。クロスサービス (Amazon EC2 など) aws:SourceArn とスタック間の信頼関係を、AWS OpsWorksAWS OpsWorksより制限の厳しい特定のスタックに制限する場合に使用します。aws:SourceAccount追加すると、AWS OpsWorksクロスサービスとスタック間の信頼関係を特定のアカウントのスタックに制限できます。これにより、制限が緩和されます。次に例を示します。両方の条件キーを使用する場合、アカウント ID は同じでなければならないことに注意してください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "arn:aws:opsworks:us-east-2:123456789012:stack/EXAMPLEd-5699-40a3-80c3-22c32EXAMPLE/" } } } ] }
  7. 条件キーを追加したら、、[ポリシーの防止] を選択します。

次に、aws:SourceArnaws:SourceAccountおよびを使用してスタックへのアクセスを制限するロールのその他の例を示します。

例:特定のリージョンのスタックへのアクセス

次のロールの信頼関係を示すために、米国東部 (オハイオ) リージョン () を使用します。AWS OpsWorks us-east-2リージョンはの ARN 値で指定されていますがaws:SourceArn、スタック ID の値はワイルドカード (*) であることに注意してください。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:opsworks:us-east-2:123456789012:stack/*" } } } ] }

例:複数のスタック ARN の追加 aws:SourceArn

次の例では、アカウント ID 123456789012 の 2 AWS OpsWorks つのスタックスタックの配列へのアクセスを制限しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": [ "arn:aws:opsworks:us-east-2:123456789012:stack/unique_ID1", "arn:aws:opsworks:us-east-2:123456789012:stack/unique_ID2" ] } } } ] }