View a markdown version of this page

Parameter Store がパラメータの取得を許可する仕組み - AWS Systems Manager

Parameter Store がパラメータの取得を許可する仕組み

4 つの Parameter Store オペレーションはパラメータ値を返すことができ、それぞれが独自の IAM アクションに対して承認されます。そのうち 3 つは、リクエストで指定されたパラメータに対して承認されます。GetParametersByPath は例外です。これは、返されるパラメータではなく、リクエストのパスに対して承認されます。

Operation 承認済み IAM アクション 承認対象のリソース
GetParameter ssm:GetParameter リクエストされたパラメータ
GetParameters ssm:GetParameters リクエストされた各パラメータ
GetParameterHistory ssm:GetParameterHistory リクエストされたパラメータ
GetParametersByPath ssm:GetParametersByPath 返されるパラメータではなく、リクエストで指定されたパス

制限ポリシーを設計する際に重要視される、このモデルの結果が 2 つあります。

各アクションは個別に承認されます

Parameter Store は、各取得オペレーションを独自の IAM アクションに対して承認します。ssm:GetParameter を拒否しても、ssm:GetParameters、ssm:GetParametersByPath、または ssm:GetParameterHistory への呼び出しには影響しません。パラメータ値へのアクセスを制限するには、それを返すことができるすべてのアクションを拒否します。

4 つのアクション名はすべて GetParameter で始まるため、ワイルドカードパターン ssm:GetParameter* を使用すると、1 つのステートメントでそれらをすべてカバーできます。例については、アクセス許可を拒否する を参照してください。

GetParametersByPath はリクエストされたパスに対して承認されます

つまり、個々のパラメータに対するリソースレベルの拒否は、パスクエリが返す内容を制限しません。パラメータ階層を使用して環境またはアプリケーション層を分離する場合は、パス自体にコントロールを適用します。

重要

Parameter Store は、GetParametersByPath オペレーションが返す各パラメータではなく、リクエストで指定したパスに対してオペレーションを承認します。パス /a に対して GetParametersByPath の呼び出しが許可されているプリンシパルは、/a/b を含む、そのパスのすべてのパラメータを受け取ります。同じポリシーが他のアクションの /a/b へのアクセスを明示的に拒否した場合でも同様です。

GetParametersByPath がパラメータを返さないようにするには、結果にそのパラメータを含める可能性のあるすべての祖先パスで ssm:GetParametersByPath アクションを拒否してください。例えば、/a/b が返されないようにするには、/a と / の両方で ssm:GetParametersByPath を拒否します。

削除にも同じパターンが適用されます。DeleteParameters は、ssm:DeleteParameter に対してではなく、ssm:DeleteParameters に対して承認されます。プリンシパルがパラメータを削除できないようにするには、両方のアクションを拒否します。

注記

Parameter Store オペレーションは AWS CloudTrail に記録されます。アカウントのパラメータの取得に使用されたオペレーションを確認するには、「Parameter Store アクティビティの監査とログ記録」を参照してください。