メニュー
Amazon EC2 Systems Manager
ユーザーガイド

Systems Manager パラメーターへのアクセス制御

AWS Identity and Access Management (IAM) を使用することで、Systems Manager パラメータへのアクセスを制御します。具体的には、次の API オペレーションへのアクセスを制限する IAM ポリシーを作成します。

制限付きの IAM ポリシーを作成して、Systems Manager パラメータへのアクセスを制御することをお勧めします。たとえば、次のポリシーは DescribeParameters および GetParameters API オペレーションを特定のリソースに呼び出すことを可能にします。これは、prod-* で始まるすべてのパラメータに関する情報を取得し、使用できることを意味します。

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

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

Copy
{ "Version":"2012-10-17", "Effect":"Allow", "Action":[ "ssm:DescribeParameters", "ssm:PutParameter", "ssm:GetParameters", "ssm:DeleteParameter" ], "Resource":[ "arn:aws:ssm:region:account id:parameter/dbserver-prod-*" ] }

特定のパラメータのみインスタンスでの実行を許可する

また、インスタンスに、特定のパラメータのみを実行するためのアクセス権限を制御することもできます。次の例では、インスタンスが "prod-" で始まるパラメータのみのパラメータ値を取得できます。パラメータが安全な文字列である場合、インスタンスは AWS KMS を使用して文字列を復号化します。

注記

パラメータを作成するときに Secure String データ型を選択すると、AWS KMS はパラメータ値を暗号化します。AWS KMS の詳細については、AWS Key Management Service Developer Guide を参照してください。

各 AWS アカウントには、デフォルトの AWS KMS キーが割り当てられます。AWS CLI から以下のコマンドを実行することで、キーを表示できます。

Copy
aws kms describe-key --key-id alias/aws/ssm
Copy
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:GetParameters" ], "Resource":[ "arn:aws:ssm:region:account-id:parameter/prod-*" ] }, { "Effect":"Allow", "Action":[ "kms:Decrypt" ], "Resource":[ "arn:aws:kms:region:account-id:key/CMK" ] } ] }

注記

前の例のようなインスタンスポリシーは、IAM でインスタンスロールに割り当てられます。ユーザーとインスタンスにポリシーを割り当てる方法を含め、Systems Manager の機能へのアクセスを設定する方法の詳細については、「Systems Manager のセキュリティロールを設定する」を参照してください。

タグを使用したパラメータへのアクセスの制御

パラメータをタグ付けしたあと、ユーザーがアクセスできるタグを指定する IAM ポリシーを作成することで、アクセスを制限できます。ユーザーがパラメータの使用を試みると、システムはパラメータに指定された IAM ポリシーおよびタグをチェックします。ユーザーがパラメータに割り当てられたタグへのアクセス権限を持たない場合、ユーザーはアクセス拒否エラーを受け取ります。次の手順に従って、タグを使用してパラメータへのアクセスを制限する IAM ポリシーを作成します。

開始する前に

パラメータを作成およびタグ付けします。詳細については、「Systems Manager パラメータの設定」を参照してください。

タグを使用してユーザーによるパラメータへのアクセスを制限するには

  1. Open the IAM console at https://console.aws.amazon.com/iam/.

  2. ナビゲーションペインで、[Policies] を選択し、次に [Create policy] を選択します。

  3. [Create Your Own Policy] セクションで、[Select] を選択します。

  4. [Policy Name] フィールドで、これをタグ付けされたパラメータのユーザーポリシーとして識別する名前を指定します。

  5. 説明を入力します。

  6. [Policy Document] フィールドで、次のポリシー例をコピーして貼り付けます。tag_key および tag_value を、タグのキー値のペアと置き換えます。

    Copy
    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:GetParameters" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key":[ "tag_value" ] } } } ] }

    次の Condition 形式を使用して、ポリシー内の複数のキーを指定できます。複数のキーを指定すると、キーに AND 関係が作られます。

    Copy
    "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key1":[ "tag_value1" ], "ssm:resourceTag/tag_key2":[ "tag_value2" ] } }

    次の Condition 形式を使用して、ポリシー内の複数の値を指定できます。ForAnyValue は、値の OR 関係を確立します。また、ForAllValues を指定して AND 関係を確立することもできます。

    Copy
    "Condition":{ "ForAnyValue:StringLike":{ "ssm:resourceTag/tag_key1"":[ "tag_value1", "tag_value2" ] } }
  7. [Create Policy] を選択します。

  8. IAM ユーザーまたはグループにポリシーを割り当てます。詳細については、「IAM ユーザーのアクセス権限の変更」および「IAM グループへのポリシーのアタッチ」を参照してください。

ポリシーを IAM ユーザーまたはグループアカウントにアタッチしたあと、ユーザーがパラメータの使用を試みて、ユーザーのポリシーがパラメータのタグへのアクセスを許可していない場合 (GetParameters API を呼び出します)、システムはエラーを返します。エラーは次の例のようになります。

ユーザー: user_name は、次のコマンドで、リソース: パラメータ ARN 上で ssm:GetParameters を実行する権限を持っていません。

パラメータが複数のタグを持つ場合でも、ユーザーがいずれかのタグにアクセスする権限を持っていなければ、ユーザーはアクセス拒否エラーを受け取ります。