

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# IAM ポリシーを使用して Parameter Store パラメータへのアクセスを制限する
<a name="sysman-paramstore-access"></a>

AWS Identity and Access Management (IAM) を使用して、AWS Systems Manager パラメータへのアクセスを制限します。具体的には、次の API オペレーションへのアクセスを制限する IAM ポリシーを作成します。
+ [DeleteParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DeleteParameter.html)
+ [DeleteParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DeleteParameters.html)
+ [DescribeParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeParameters.html)
+ [GetParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html)
+ [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html)
+ [GetParameterHistory](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameterHistory.html)
+ [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html)
+ [PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html)

IAM ポリシーを使用して Systems Manager パラメータへのアクセスを制限する場合は、*制限付き* IAM ポリシーを作成して使用することをお勧めします。たとえば、以下のポリシーでは、ユーザーは限られた一連のリソースに対して `DescribeParameters` および `GetParameters` API オペレーションを呼び出すことができます。つまり、`prod-*` で始まるすべてのパラメータに関する情報を取得し、使用することができます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeParameters"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameters"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*"
        }
    ]
}
```

------

**重要**  
ユーザーがパスへのアクセス許可を持つ場合、そのユーザーはそのパスのすべてのレベルにアクセスできます。たとえば、ユーザーがパス `/a` へのアクセス許可を持っている場合、ユーザーは `/a/b` にアクセスすることもできます。ユーザーが IAM でパラメータ `/a/b` へのアクセスを明示的に拒否された場合でも、`/a` に対して `GetParametersByPath` API オペレーションを再帰的に呼び出し、`/a/b` を表示できます。

信頼されている管理者には、以下の例のようなポリシーを使用することで、すべての Systems Manager パラメータ API オペレーションへのアクセスを許可できます。このポリシーにより、ユーザーは、`dbserver-prod-*` で始まるすべての本稼働パラメータにフルアクセスできます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutParameter",
                "ssm:DeleteParameter",
                "ssm:GetParameterHistory",
                "ssm:GetParametersByPath",
                "ssm:GetParameters",
                "ssm:GetParameter",
                "ssm:DeleteParameters"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/dbserver-prod-*"
        },
        {
            "Effect": "Allow",
            "Action": "ssm:DescribeParameters",
            "Resource": "*"
        }
    ]
}
```

------

## アクセス許可を拒否する
<a name="sysman-paramstore-deny-permissions"></a>

各 API は一意であり、個別に許可または拒否できる個別の操作とアクセス許可があります。ポリシー内の明示的な拒否は、許可に優先します。

**注記**  
デフォルトの AWS Key Management Service (AWS KMS) キーには、AWS アカウント 内のすべての IAM プリンシパルに対する `Decrypt` アクセス許可があります。アカウントの `SecureString` パラメータに対して異なるアクセスレベルを使用する場合は、デフォルトのキーを使用することはお勧めしません。

パラメータ値を取得するすべての API オペレーションの動作を同じにする場合は、ポリシーの `GetParameter*` ようなパターンを使用できます。次に、`GetParameter` で始まるすべてのパラメータについて、`GetParameters`、`GetParameterHistory`、`GetParametersByPath`、および `prod-*` を拒否する例を示します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ssm:GetParameter*"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*"
        }
    ]
}
```

------

次に、`prod-*` で始まるすべてのパラメータに対してユーザーが他のコマンドを実行できるようにしながら、一部のコマンドを拒否する例を示します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ssm:PutParameter",
                "ssm:DeleteParameter",
                "ssm:DeleteParameters",
                "ssm:DescribeParameters"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParametersByPath",
                "ssm:GetParameters",
                "ssm:GetParameter",
                "ssm:GetParameterHistory"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*"
        }
    ]
}
```

------

**注記**  
パラメータ履歴には、現在のパラメータを含むすべてのパラメータバージョンが含まれます。したがって、`GetParameter`、`GetParameters`、および `GetParameterByPath` に対するアクセス許可が拒否され、`GetParameterHistory` に対するアクセス許可が認められている場合、`SecureString` を使用して、`GetParameterHistory` パラメータを含む現在のパラメータを表示できます。

## 特定のパラメータのみノードでの実行を許可する
<a name="sysman-paramstore-access-inst"></a>

指定したパラメータのみをマネージドノードが実行できるようにアクセスをコントロールできます。

パラメータを作成するときに `SecureString` パラメータ型を選択した場合、Systems Manager は AWS KMS を使用してパラメータ値を暗号化します。AWS KMS は AWS マネージドキー またはカスタマーマネージドキーを使用して値を暗号化します。AWS KMS と AWS KMS key の詳細については、「[AWS Key Management Service デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/)」を参照してください。

AWS マネージドキー を表示するには、以下のコマンドを AWS CLI から実行します。

```
aws kms describe-key --key-id alias/aws/ssm
```

以下の例では、「`prod-`」で始まるパラメータに対してのみ、ノードがパラメータの値を取得できるようにしています。パラメータが `SecureString` の場合、ノードは AWS KMS を使用してその文字列を復号化します。

**注記**  
以下の例のように、IAM でインスタンスポリシーはインスタンスロールに割り当てられます。ユーザーとインスタンスにポリシーを割り当てる方法を含め、Systems Manager の機能へのアクセスを設定する方法の詳細については、「[Systems Manager を利用した EC2 インスタンスの管理](systems-manager-setting-up-ec2.md)」を参照してください。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameters"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/4914ec06-e888-4ea5-a371-5b88eEXAMPLE"
            ]
        }
    ]
}
```

------

## AWS のデフォルトキーとカスタマーマネージドキーを使用するための IAM アクセス権限
<a name="ps-kms-permissions"></a>

Parameter Store `SecureString` パラメータは、AWS KMS キーを使用して暗号化および復号化されます。AWS が提供する AWS KMS key またはデフォルトの KMS キーを使用して、`SecureString` パラメータを暗号化することを選択できます。

カスタマーマネージドキーを使用する場合、パラメータまたはパラメータパスへのユーザーアクセスを許可する IAM ポリシーによって、キーに対する明示的な `kms:Encrypt` アクセス許可を提供する必要があります。例えば、次のポリシーでは、指定した AWS リージョン と AWS アカウント で「`prod-`」で始まる `SecureString` パラメータを作成、更新、表示できます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutParameter",
                "ssm:GetParameter",
                "ssm:GetParameters"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:Encrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE"
            ]
        }
    ]
}
```

------

**注記**  
指定されたカスタマーマネージドキーを使用して暗号化された詳細パラメータを作成するには、`kms:GenerateDataKey` アクセス許可が必要です。

対照的に、カスタマーアカウント内のすべてのユーザーは、デフォルトの AWS マネージドキーにアクセスできます。このデフォルトキーを使用して `SecureString` パラメータを暗号化し、ユーザーが `SecureString` パラメータを操作しないようにする場合は、次のポリシー例に示すように、IAM ポリシーでデフォルトキーへのアクセスを明示的に拒否する必要があります。

**注記**  
デフォルトのキーの Amazon リソースネーム (ARN) は、AWS KMS コンソールの [[AWS マネージドキー]](https://console.aws.amazon.com/kms/home#/kms/defaultKeys) ページで確認できます。デフォルトのキーは、**[エイリアス]** 列の `aws/ssm` で識別されます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/abcd1234-ab12-cd34-ef56-abcdeEXAMPLE"
            ]
        }
    ]
}
```

------

アカウントの `SecureString` パラメータに対するきめ細かいアクセス制御が必要な場合は、カスタマーマネージドキーを使用して、これらのパラメータへのアクセスを保護および制限する必要があります。また、AWS CloudTrail を使用して `SecureString` パラメータのアクティビティを監視することをお勧めします。

詳細については、以下のトピックを参照してください。
+ *IAM ユーザーガイド*の「[ポリシー評価ロジック](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)」
+ 「AWS Key Management Service デベロッパーガイド」の「[AWS KMS の主要ポリシーを使用する](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)」
+ *AWS CloudTrail ユーザーガイド*の「[CloudTrail イベント履歴でのイベントの表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)」