

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

# AWS Payment Cryptography のリソースベースのポリシー
<a name="security_iam_resource-based-policies"></a>

リソースベースのポリシーは、 AWS Payment Cryptography キーなど、リソースにアタッチする JSON ポリシードキュメントです。リソースベースのポリシーでは、キーにアクセスできるユーザーとそのキーに対して実行できるアクションを指定します。リソースベースのポリシーを使用して、以下を行うことができます。
+ 1 つのキーへのアクセス権を複数のユーザーとロールに付与します。
+ 他の AWS アカウントのユーザーまたはロールにアクセスを許可します。

**Topics**
+ [考慮事項](#security_iam_resource-based-policies-considerations)
+ [リソースベースのポリシーの管理](#security_iam_resource-based-policies-manage)
+ [リソースベースのポリシーの例](#security_iam_resource-based-policies-examples)

Payment Cryptography キーにリソースベースのポリシーをアタッチすると、 AWS Payment AWS Cryptography は IAM ポリシー評価ロジックを使用して、特定のプリンシパルがリクエストされたアクションを実行する権限を持っているかどうかを判断します。クロスアカウントアクセスを有効にするには、アカウント全体、または別のアカウントの IAM エンティティを[リソースベースのポリシーのプリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)として指定します。クロスアカウントアクセスには、次の 2 つのポリシーが必要です。

1. *リソースベースのポリシー (キー所有者のアカウント)* — キー所有者は `PutResourcePolicy` を使用して発信者のアカウントまたは IAM プリンシパルへのアクセスを許可します。

1. *アイデンティティベースのポリシー (発信者のアカウント)* — 発信者の IAM 管理者は、発信者の IAM ポリシーで AWS Payment Cryptography アクション ( など`payment-cryptography:EncryptData`) も許可する必要があります。

どちらのポリシーも アクションを許可する必要があります。どちらかが欠落している場合、クロスアカウントリクエストは で拒否されます`AccessDeniedException`。

リソースベースのポリシーが同じアカウントのプリンシパルにアクセスを許可する場合、追加のアイデンティティベースのポリシーは必要ありません。詳細については、IAM ユーザーガイドの「[IAM ロールとリソースベースのポリシーとの相違点](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)」を参照してください。

**リソースポリシーコントロールプレーンオペレーション**  
リソースベースのポリシーは、[https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_PutResourcePolicy.html](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_PutResourcePolicy.html)、、 [https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetResourcePolicy.html](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetResourcePolicy.html)などのリソースポリシーコントロールプレーンオペレーションには適用されません[https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_DeleteResourcePolicy.html](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_DeleteResourcePolicy.html)。これにより、リソースポリシーがポリシー自体を変更または削除する能力を拒否する可能性のあるロックアウトシナリオを防ぐことができます。これらのコントロールプレーンオペレーションへのアクセスは、IAM アイデンティティベースのポリシーによってのみ管理されます。

## 考慮事項
<a name="security_iam_resource-based-policies-considerations"></a>

 AWS Payment Cryptography でリソースベースのポリシーを使用する場合は、次の点に注意してください。
+ AWS Payment Cryptography は、キーへのパブリックアクセスを自動的に強制しません。匿名プリンシパルまたはパブリックプリンシパルへのアクセスを許可するリソースベースのポリシーを作成することはできません。 AWS Payment Cryptography キーへのすべてのアクセスには認証された AWS プリンシパルが必要であり、パブリックアクセスは常にブロックされます。
+ リソースベースのポリシーはキーごとに適用されます。各 AWS Payment Cryptography キーには、最大 1 つのリソースベースのポリシーをアタッチできます。
+ リソースベースのポリシーはエイリアスには適用されません。エイリアスでキーを参照すると、基になるキーにアタッチされたリソースポリシーが評価されます。
+ リソースベースのポリシーは、現時点ではマルチリージョンキーレプリケーションを使用して作成された読み取り専用レプリカリージョンキーには適用されません。リソースポリシーは、プライマリリージョンキーにのみアタッチできます。
+ リソースベースのポリシーの `Resource`要素は、ポリシーがアタッチされているキーの ARN `"*"`であるか、完全に一致する必要があります。を使用すると、同じポリシードキュメントを複数のキー間で再利用できるため、 `"*"` を使用することをお勧めします。
+ リソースポリシー管理 APIs (`PutResourcePolicy`、`GetResourcePolicy`、および `DeleteResourcePolicy`) は、キーを所有 AWS アカウント する に制限されます。キー所有者のアカウント内のプリンシパルのみがリソースポリシーを管理できます。

## リソースベースのポリシーの管理
<a name="security_iam_resource-based-policies-manage"></a>

Payment Cryptography キーのリソースベースのポリシーは、 AWS CLI または AWS API AWS を使用して管理できます。このコマンドを使用するには、コマンド例の{{斜体のプレースホルダーテキスト}}を独自の情報に置き換えます。

**リソースベースのポリシーをアタッチする**  
[https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_PutResourcePolicy.html](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_PutResourcePolicy.html) API アクションまたは [https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/put-resource-policy.html](https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/put-resource-policy.html) CLI コマンドを使用して、リソースベースのポリシーをキーにアタッチします。ポリシーが既に存在する場合、コマンドはそのポリシーを置き換えます。

次の例では、JSON ファイルからキーにリソースベースのポリシーをアタッチします。

```
aws payment-cryptography put-resource-policy \
    --resource-arn arn:aws:payment-cryptography:{{us-east-2}}:{{111122223333}}:key/{{kwapwa6qaifllw2h}} \
    --policy file://{{policy.json}}
```

**リソースベースのポリシーを取得する**  
[https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetResourcePolicy.html](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetResourcePolicy.html) API アクションまたは [https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/get-resource-policy.html](https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/get-resource-policy.html) CLI コマンドを使用して、キーにアタッチされたリソースベースのポリシーを取得します。

次の の例では、キーにアタッチされたリソースベースのポリシーを取得します。

```
aws payment-cryptography get-resource-policy \
    --resource-arn arn:aws:payment-cryptography:{{us-east-2}}:{{111122223333}}:key/{{kwapwa6qaifllw2h}}
```

レスポンスはポリシードキュメントを返します。

```
{
    "Policy": {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::{{111122223333}}:role/{{ExampleRole}}"
                },
                "Action": [
                    "payment-cryptography:EncryptData",
                    "payment-cryptography:DecryptData"
                ],
                "Resource": "*"
            }
        ]
    }
}
```

**リソースベースのポリシーを削除する**  
[https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_DeleteResourcePolicy.html](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_DeleteResourcePolicy.html) API アクションまたは [https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/delete-resource-policy.html](https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/delete-resource-policy.html) CLI コマンドを使用して、キーからリソースベースのポリシーを削除します。

次の の例では、キーにアタッチされたリソースベースのポリシーを削除します。

```
aws payment-cryptography delete-resource-policy \
    --resource-arn arn:aws:payment-cryptography:{{us-east-2}}:{{111122223333}}:key/{{kwapwa6qaifllw2h}}
```

## リソースベースのポリシーの例
<a name="security_iam_resource-based-policies-examples"></a>

### キーへのクロスアカウントアクセスを付与する
<a name="security_iam_resource-based-policies-cross-account"></a>

次のリソースベースのポリシーは、別の AWS アカウントのロールに、暗号化オペレーションに AWS Payment Cryptography キーを使用するアクセス許可を付与します。

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:role/{{ExampleRole}}"
            },
            "Action": [
                "payment-cryptography:GenerateCardValidationData",
                "payment-cryptography:VerifyCardValidationData"
            ],
            "Resource": "*"
        }
    ]
}
```

### 異なるアカウントに異なるアクセス許可を付与する
<a name="security_iam_resource-based-policies-restrict-actions"></a>

次のリソースベースのポリシーは、別々のアカウントのプリンシパルに異なるアクセス許可を付与する方法を示しています。この例では、あるアカウントの 3DS Access Control Server (ACS) はカード検証データを生成できますが、別のアカウントの Payment Authorization サービスは 3DS 暗号しか検証できません。

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "Allow3DSACSToGenerate",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:role/{{3dsAcsRole}}"
            },
            "Action": [
                "payment-cryptography:GenerateCardValidationData"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowPaymentAuthToVerify",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{444455556666}}:role/{{PaymentAuthRole}}"
            },
            "Action": [
                "payment-cryptography:VerifyAuthRequestCryptogram"
            ],
            "Resource": "*"
        }
    ]
}
```