

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

# OpsWorks スタックでのサービス間の混乱した代理の防止
<a name="cross-service-confused-deputy-prevention-stacks"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

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

スタックアクセスポリシーで [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) グローバル条件コンテキストキーを使用して、 AWS OpsWorks スタックが別のサービスに付与するアクセス許可をスタックに制限することをお勧めします。`aws:SourceArn` の値に Amazon S3 バケット ARN などのアカウント ID が含まれていない場合は、両方のグローバル条件コンテキストキーを使用して、アクセス許可を制限する必要があります。同じポリシーステートメントでこれらのグローバル条件コンテキストキーの両方を使用し、アカウント ID に`aws:SourceArn` の値が含まれていない場合、`aws:SourceAccount` 値と `aws:SourceArn` 値の中のアカウントには、同じアカウント ID を使用する必要があります。クロスサービスのアクセスにスタックを 1 つだけ関連付けたい場合は、`aws:SourceArn` を使用します。クロスサービスが使用できるように、アカウント内の任意のスタックを関連づけたい場合は、`aws:SourceAccount` を使用します。

の値は、 OpsWorks スタックの ARN `aws:SourceArn`である必要があります。

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

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

## OpsWorks スタックで混乱した代理の悪用を防ぐ
<a name="confused-deputy-opsworks-stacks-procedure"></a>

このセクションでは、 スタックで OpsWorks 混乱した代理悪用を防ぐ方法と、 スタックへのアクセスに使用している IAM ロールにアタッチできるアクセス許可ポリシーの例について説明します OpsWorks 。セキュリティのベストプラクティスとして、`aws:SourceArn` と `aws:SourceAccount` の条件キーを IAM ロールとほかのサービスとの信頼関係に追加することをお勧めします。信頼関係により OpsWorks 、 スタックは、 OpsWorks スタックスタックを作成または管理するために必要な他の サービスでアクションを実行するロールを引き受けることができます。

**信頼関係を編集するために、`aws:SourceArn` と `aws:SourceAccount` 条件キーを追加するには**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. 左のナビゲーションペインで、**[ロール]** を選択してください。

1. **検索**ボックスで、 OpsWorks スタックへのアクセスに使用するロールを検索します。 AWS マネージドロールは です`aws-opsworks-service-role`。

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

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

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

1. 条件キーの追加が終了したら、 [**更新ポリシー**] を選択します。

`aws:SourceArn` と `aws:SourceAccount` を使用してスタックへのアクセスを制限するロールのその他の例を以下に示します。

**Topics**
+ [例: 特定のリージョンのスタックへのアクセス](#confused-deputy-opsworks-stacks-example1)
+ [例: `aws:SourceArn` に複数のスタック ARN の追加](#confused-deputy-opsworks-stacks-example2)

### 例: 特定のリージョンのスタックへのアクセス
<a name="confused-deputy-opsworks-stacks-example1"></a>

次のロール信頼関係ステートメントは、米国東部 (オハイオ) リージョン () のすべての OpsWorks スタックスタックにアクセスします`us-east-2`。リージョンは `aws:SourceArn` の ARN 値で指定されていますが、スタック ID の値はワイルドカード (\$1) であることに注意してください。

------
#### [ JSON ]

****  

```
{
  "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/*"
        }
      }
    }
  ]
}
```

------

### 例: `aws:SourceArn` に複数のスタック ARN の追加
<a name="confused-deputy-opsworks-stacks-example2"></a>

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