

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

# Systems Manager でジャストインタイムアクセスをセットアップする
<a name="systems-manager-just-in-time-node-access-setting-up"></a>

Systems Manager でジャストインタイムノードアクセスをセットアップするには、複数のステップが必要です。まず、ジャストインタイムノードアクセスをセットアップする*ターゲット*を選択します。ターゲットは、AWS Organizations 組織単位 (OU) と AWS リージョンで構成されています。デフォルトでは、Systems Manager 統合コンソールをセットアップするときに選択したのと同じターゲットがジャストインタイムノードアクセスにも選択されます。ジャストインタイムノードアクセスは、同じすべてのターゲットにセットアップすることも、Systems Manager 統合コンソールをセットアップするときに指定したターゲットのサブセットにセットアップすることもできます。Systems Manager 統合コンソールをセットアップするときに選択されなかったターゲットを新たに追加する機能はサポートされていません。

次に、*承認ポリシー*を作成して、どのようなときにノード接続に手動承認が必要になるのか、どのようなときにノード接続を自動的に承認するのかを決定します。承認ポリシーは、組織内の各アカウントで管理されます。また、委任された管理者アカウントからのポリシーを共有して、特定のノードへの接続の自動承認を明示的に拒否することもできます。

**注記**  
ジャストインタイムノードアクセスをセットアップしても、Session Manager に対して設定した既存の IAM ポリシーや設定には影響しません。ユーザーがノードへの接続を試みたときにジャストインタイムノードアクセスのみが使用されるようにするには、IAM ポリシーから `StartSession` API アクションへのアクセス許可を削除する必要があります。ジャストインタイムノードアクセスをセットアップしたら、Session Manager に対するアクセス許可を削除する前に、ユーザーとノードのサブセットで承認ポリシーをテストして、ポリシーが想定通りに機能していることを確認することをお勧めします。

**認証のサポート**  
ジャストインタイムノードアクセスに使用される認証サポートについては、次の詳細に注意してください。
+ ジャストインタイムノードアクセスでは、リモートデスクトップで Windows Server インスタンスに接続する場合、シングルサインオン認証タイプはサポートされません。
+ AWS Security Token Service (AWS STS) の一時的なセキュリティ認証情報 `AssumeRole` のみがサポートされます。詳細については、*IAM ユーザーガイド*にある下記のトピックを参照してください。
+ 
  + [IAM の一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)
  + [AWS STS 認証情報を比較する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html)
  + [一時的なセキュリティ認証情報をリクエストする](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)

以下の IAM ポリシーは、ユーザーが Systems Manager でノードへのジャストインタイムノードアクセスリクエストを作成することを管理および許可するために必要なアクセス許可の概要を示しています。Systems Manager でジャストインタイムノードアクセスを使用するために必要なアクセス許可が付与されていることを確認したら、セットアッププロセスを続行できます。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

## ジャストインタイムノードアクセスを有効にするための IAM ポリシー
<a name="just-in-time-administrator-policy"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "QuickSetupConfigurationManagers",
            "Effect": "Allow",
            "Action": [
                "ssm-quicksetup:CreateConfigurationManager",
                "ssm-quicksetup:DeleteConfigurationManager",
                "ssm-quicksetup:GetConfiguration",
                "ssm-quicksetup:GetConfigurationManager",
                "ssm-quicksetup:GetServiceSettings",
                "ssm-quicksetup:ListConfigurationManagers",
                "ssm-quicksetup:ListConfigurations",
                "ssm-quicksetup:ListQuickSetupTypes",
                "ssm-quicksetup:ListTagsForResource",
                "ssm-quicksetup:TagResource",
                "ssm-quicksetup:UntagResource",
                "ssm-quicksetup:UpdateConfigurationDefinition",
                "ssm-quicksetup:UpdateConfigurationManager",
                "ssm-quicksetup:UpdateServiceSettings"
            ],
            "Resource": "*"
        },
        {
            "Sid": "QuickSetupDeployments",
            "Effect": "Allow",
            "Action": [
                "cloudformation:DescribeStackSetOperation",
                "cloudformation:ListStacks",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackResources",
                "cloudformation:ListStackSetOperations",
                "cloudformation:ListStackInstances",
                "cloudformation:DescribeStackSet",
                "cloudformation:ListStackSets",
                "cloudformation:DescribeStackInstance",
                "cloudformation:DescribeOrganizationsAccess",
                "cloudformation:ActivateOrganizationsAccess",
                "cloudformation:GetTemplate",
                "cloudformation:ListStackSetOperationResults",
                "cloudformation:DescribeStackEvents",
                "cloudformation:UntagResource",
                "ssm:DescribeAutomationExecutions",
                "ssm:GetAutomationExecution",
                "ssm:ListAssociations",
                "ssm:DescribeAssociation",
                "ssm:GetDocument",
                "ssm:ListDocuments",
                "ssm:DescribeDocument",
                "ssm:GetOpsSummary",
                "organizations:DeregisterDelegatedAdministrator",
                "organizations:DescribeAccount",
                "organizations:DescribeOrganization",
                "organizations:ListDelegatedAdministrators",
                "organizations:ListRoots",
                "organizations:ListParents",
                "organizations:ListOrganizationalUnitsForParent",
                "organizations:DescribeOrganizationalUnit",
                "organizations:ListAWSServiceAccessForOrganization",
                "iam:ListRoles",
                "iam:ListRolePolicies",
                "iam:GetRole",
                "iam:CreatePolicy",
                "cloudformation:TagResource"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:RollbackStack",
                "cloudformation:CreateStack",
                "cloudformation:UpdateStack",
                "cloudformation:DeleteStack"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:*:stack/StackSet-AWS-QuickSetup-JITNA*",
                "arn:aws:cloudformation:*:*:stack/AWS-QuickSetup-*",
                "arn:aws:cloudformation:*:*:type/resource/*",
                "arn:aws:cloudformation:*:*:stack/StackSet-SSMQuickSetup"
            ]
        },
        {
            "Sid": "StackSetOperations",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStackSet",
                "cloudformation:UpdateStackSet",
                "cloudformation:DeleteStackSet",
                "cloudformation:DeleteStackInstances",
                "cloudformation:CreateStackInstances",
                "cloudformation:StopStackSetOperation"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:*:stackset/AWS-QuickSetup-JITNA*",
                "arn:aws:cloudformation:*:*:type/resource/*",
                "arn:aws:cloudformation:*:*:stackset-target/AWS-QuickSetup-JITNA*:*"
            ]
        },
        {
            "Sid": "IamRolesMgmt",
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:GetRole",
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy",
                "iam:DetachRolePolicy",
                "iam:GetRolePolicy",
                "iam:ListRolePolicies"
            ],
            "Resource": [
                "arn:aws:iam::*:role/AWS-QuickSetup-JITNA*",
                "arn:aws:iam::*:role/service-role/AWS-QuickSetup-JITNA*"
            ]
        },
        {
            "Sid": "IamPassRole",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::*:role/AWS-QuickSetup-JITNA*",
                "arn:aws:iam::*:role/service-role/AWS-QuickSetup-JITNA*"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ssm.amazonaws.com",
                        "ssm-quicksetup.amazonaws.com",
                        "cloudformation.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "SSMAutomationExecution",
            "Effect": "Allow",
            "Action": "ssm:StartAutomationExecution",
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/AWS-EnableExplorer",
                "arn:aws:ssm:us-east-1:111122223333:automation-execution/*"
            ]
        },
        {
            "Sid": "SSMAssociationPermissions",
            "Effect": "Allow",
            "Action": [
                "ssm:DeleteAssociation",
                "ssm:CreateAssociation",
                "ssm:StartAssociationsOnce"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:association/*"
        },
        {
            "Sid": "SSMResourceDataSync",
            "Effect": "Allow",
            "Action": [
                "ssm:CreateResourceDataSync",
                "ssm:UpdateResourceDataSync"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:resource-data-sync/AWS-QuickSetup-*"
        },
        {
            "Sid": "ListResourceDataSync",
            "Effect": "Allow",
            "Action": [
                "ssm:ListResourceDataSync"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CreateServiceLinkedRoles",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:AWSServiceName": [
                        "accountdiscovery.ssm.amazonaws.com",
                        "ssm.amazonaws.com",
                        "ssm-quicksetup.amazonaws.com",
                        "stacksets.cloudformation.amazonaws.com"
                    ]
                }
            },
            "Resource": "*"
        },
        {
            "Sid": "CreateStackSetsServiceLinkedRole",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/stacksets.cloudformation.amazonaws.com/AWSServiceRoleForCloudFormationStackSetsOrgAdmin"
        },
        {
            "Sid": "AllowSsmJitnaPoliciesCrudOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:CreateDocument",
                "ssm:UpdateDocument",
                "ssm:UpdateDocumentDefaultVersion",
                "ssm:GetDocument",
                "ssm:DescribeDocument",
                "ssm:DeleteDocument"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-JustInTimeAccessDenyAccessOrgPolicy"
            ],
            "Condition": {
                "StringEquals": {
                    "ssm:DocumentType": [
                        "AutoApprovalPolicy"
                    ]
                }
            }
        },
        {
            "Sid": "AllowAccessRequestOpsItemOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:GetOpsItem",
                "ssm:DescribeOpsItems",
                "ssm:GetOpsSummary",
                "ssm:DeleteOpsItem",
                "ssm:ListOpsItemEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IdentityCenterPermissions",
            "Effect": "Allow",
            "Action": [
                "sso:DescribeRegisteredRegions",
                "sso:ListDirectoryAssociations",
                "identitystore:GetUserId",
                "identitystore:DescribeUser",
                "identitystore:DescribeGroup",
                "identitystore:ListGroupMembershipsForMember"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## ジャストインタイムノードアクセスを設定するための IAM ポリシー
<a name="just-in-time-member-administrator-policy"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowSsmJitnaPoliciesCrudOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:CreateDocument",
                "ssm:UpdateDocument",
                "ssm:UpdateDocumentDefaultVersion",
                "ssm:GetDocument",
                "ssm:DescribeDocument",
                "ssm:DeleteDocument"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ssm:DocumentType": [
                        "ManualApprovalPolicy",
                        "AutoApprovalPolicy"
                    ]
                }
            }
        },
        {
            "Sid": "AllowSsmJitnaPoliciesListOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:ListDocuments",
                "ssm:ListDocumentVersions"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/SSM-JustInTimeAccessTokenRole",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "justintimeaccess.ssm.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "AllowAccessRequestOpsItemOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:GetOpsItem",
                "ssm:DescribeOpsItems",
                "ssm:GetOpsSummary",
                "ssm:DeleteOpsItem",
                "ssm:ListOpsItemEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowSessionManagerPreferencesOperation",
            "Effect": "Allow",
            "Action": [
                "ssm:CreateDocument",
                "ssm:GetDocument",
                "ssm:DescribeDocument",
                "ssm:UpdateDocument",
                "ssm:DeleteDocument"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell",
            "Condition": {
                "StringEquals": {
                    "ssm:DocumentType": "Session"
                }
            }
        },
        {
            "Sid": "AllowSessionManagerOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeSessions",
                "ssm:GetConnectionStatus",
                "ssm:TerminateSession"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowRDPConnectionRecordingOperations",
            "Effect": "Allow",
            "Action": [
                "ssm-guiconnect:UpdateConnectionRecordingPreferences",
                "ssm-guiconnect:GetConnectionRecordingPreferences",
                "ssm-guiconnect:DeleteConnectionRecordingPreferences"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowRDPConnectionRecordingKmsOperation",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/SystemsManagerJustInTimeNodeAccessManaged": "true"
                },
                "StringLike": {
                    "kms:ViaService": "ssm-guiconnect.*.amazonaws.com"
                },
                "Bool": {
                    "aws:ViaAWSService": "true"
                }
            }
        },
        {
            "Sid": "AllowFleetManagerOperations",
            "Effect": "Allow",
            "Action": [
                "ssm-guiconnect:GetConnection",
                "ssm-guiconnect:ListConnections"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SNSTopicManagement",
            "Effect": "Allow",
            "Action": [
                "sns:CreateTopic",
                "sns:SetTopicAttributes"
            ],
            "Resource": [
                "arn:aws:sns:us-east-1:111122223333:SSM-JITNA*"
            ]
        },
        {
            "Sid": "SNSListTopics",
            "Effect": "Allow",
            "Action": [
                "sns:ListTopics"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EventBridgeRuleManagement",
            "Effect": "Allow",
            "Action": [
                "events:PutRule",
                "events:PutTargets"
            ],
            "Resource": [
                "arn:aws:events:us-east-1::rule/SSM-JITNA*"
            ]
        },
        {
            "Sid": "ChatbotSlackManagement",
            "Effect": "Allow",
            "Action": [
                "chatbot:CreateSlackChannelConfiguration",
                "chatbot:UpdateSlackChannelConfiguration",
                "chatbot:DescribeSlackChannelConfigurations",
                "chatbot:DescribeSlackWorkspaces",
                "chatbot:DeleteSlackChannelConfiguration",
                "chatbot:RedeemSlackOauthCode",
                "chatbot:DeleteSlackWorkspaceAuthorization",
                "chatbot:GetSlackOauthParameters"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ChatbotTeamsManagement",
            "Effect": "Allow",
            "Action": [
                "chatbot:ListMicrosoftTeamsChannelConfigurations",
                "chatbot:CreateMicrosoftTeamsChannelConfiguration",
                "chatbot:UpdateMicrosoftTeamsChannelConfiguration",
                "chatbot:ListMicrosoftTeamsConfiguredTeams",
                "chatbot:DeleteMicrosoftTeamsChannelConfiguration",
                "chatbot:RedeemMicrosoftTeamsOauthCode",
                "chatbot:DeleteMicrosoftTeamsConfiguredTeam",
                "chatbot:GetMicrosoftTeamsOauthParameters",
                "chatbot:TagResource"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SSMEmailSettings",
            "Effect": "Allow",
            "Action": [
                "ssm:UpdateServiceSetting",
                "ssm:GetServiceSetting"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/access-request/email-role-mapping",
                "arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/access-request/enabled-email-notifications"
            ]
        },
        {
            "Sid": "AllowViewingJitnaCloudWatchMetrics",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetMetricData",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudwatch:namespace": "AWS/SSM/JustInTimeAccess"
                }
            }
        },
        {
            "Sid": "QuickSetupConfigurationManagers",
            "Effect": "Allow",
            "Action": [
                "ssm-quicksetup:ListConfigurationManagers",
                "ssm-quicksetup:ListConfigurations",
                "ssm-quicksetup:ListQuickSetupTypes",
                "ssm-quicksetup:GetConfiguration",
                "ssm-quicksetup:GetConfigurationManager"
            ],
            "Resource": "*"
        },
        {
            "Sid": "QuickSetupDeployments",
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListStacks",
                "cloudformation:DescribeStacks",
                "organizations:DescribeOrganization",
                "organizations:ListDelegatedAdministrators"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ManualPolicy",
            "Effect": "Allow",
            "Action": [
                "sso:DescribeRegisteredRegions",
                "ssm:GetServiceSetting",
                "iam:ListRoles"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SessionPreference",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowIamListForKMS",
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers"
            ],
            "Resource": "arn:aws:iam::111122223333:user/*"
        },
        {
            "Sid": "KMSPermission",
            "Effect": "Allow",
            "Action": [
                "kms:TagResource",
                "kms:ListAliases",
                "kms:CreateAlias"
            ],
            "Resource": "*"
        },
        {
            "Sid": "KMSCreateKey",
            "Effect": "Allow",
            "Action": [
                "kms:CreateKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/SystemsManagerJustInTimeNodeAccessManaged": "true"
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "SystemsManagerJustInTimeNodeAccessManaged"
                    ]
                }
            }
        },
        {
            "Sid": "AllowIamRoleForChatbotAction",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/role name",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "chatbot.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "AllowIamServiceRoleForChat",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/aws-service-role/management.chatbot.amazonaws.com/AWSServiceRoleForAWSChatbot"
        },
        {
            "Sid": "CloudWatchLogs",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups"
            ],
            "Resource": "arn:aws:logs:*:111122223333:log-group::log-stream:"
        },
        {
            "Sid": "IdentityStorePermissions",
            "Effect": "Allow",
            "Action": [
                "sso:ListDirectoryAssociations",
                "identitystore:GetUserId",
                "sso-directory:SearchUsers",
                "sso-directory:SearchGroups",
                "identitystore:DescribeGroup",
                "identitystore:DescribeUser"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## アクセスリクエスト承認者用の IAM ポリシー
<a name="just-in-time-access-request-approver-policy"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAccessRequestDescriptions",
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeOpsItems",
                "ssm:GetOpsSummary",
                "ssm:ListOpsItemEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowGetSpecificAccessRequest",
            "Effect": "Allow",
            "Action": [
                "ssm:GetOpsItem"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:opsitem/*"
        },
        {
            "Sid": "AllowApprovalRejectionSignal",
            "Effect": "Allow",
            "Action": [
                "ssm:SendAutomationSignal"
            ],
            "Resource": "arn:aws:ssm:*:*:automation-execution/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/SystemsManagerJustInTimeNodeAccessManaged": "true"
                }
            }
        },
        {
            "Sid": "QuickSetupConfigurationManagers",
            "Effect": "Allow",
            "Action": [
                "ssm-quicksetup:ListConfigurationManagers",
                "ssm-quicksetup:ListConfigurations",
                "ssm-quicksetup:GetConfigurationManager",
                "ssm-quicksetup:ListQuickSetupTypes",
                "ssm-quicksetup:GetConfiguration"
            ],
            "Resource": "*"
        },
        {
            "Sid": "QuickSetupDeployments",
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListStacks",
                "cloudformation:DescribeStacks",
                "organizations:DescribeOrganization",
                "organizations:ListDelegatedAdministrators"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowSsmJitnaPoliciesCrudOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:GetDocument",
                "ssm:DescribeDocument"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ssm:DocumentType": [
                        "ManualApprovalPolicy",
                        "AutoApprovalPolicy"
                    ]
                }
            }
        },
        {
            "Sid": "AllowSsmJitnaPoliciesListOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:ListDocuments",
                "ssm:ListDocumentVersions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IDCPermissions",
            "Effect": "Allow",
            "Action": [
                "sso:DescribeRegisteredRegions",
                "sso:ListDirectoryAssociations",
                "identitystore:GetUserId",
                "identitystore:DescribeUser",
                "identitystore:DescribeGroup",
                "identitystore:ListGroupMembershipsForMember"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## ジャストインタイムノードアクセスユーザー用の IAM ポリシー
<a name="just-in-time-access-requester-policy"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowJITNAOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:StartAccessRequest",
                "ssm:GetAccessToken"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowOpsItemCreationAndRetrieval",
            "Effect": "Allow",
            "Action": [
                "ssm:CreateOpsItem",
                "ssm:GetOpsItem"
            ],
            "Resource": "arn:aws:ssm:*:*:opsitem/*"
        },
        {
            "Sid": "AllowListAccessRequests",
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeOpsItems",
                "ssm:GetOpsSummary",
                "ssm:ListOpsItemEvents",
                "ssm:DescribeSessions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "RequestManualApprovals",
            "Action": "ssm:StartAutomationExecution",
            "Effect": "Allow",
            "Resource": "arn:aws:ssm:*:*:document/*",
            "Condition": {
                "StringEquals": {
                    "ssm:DocumentType": "ManualApprovalPolicy"
                }
            }
        },
        {
            "Sid": "StartManualApprovalsAutomationExecution",
            "Effect": "Allow",
            "Action": "ssm:StartAutomationExecution",
            "Resource": "arn:aws:ssm:*:*:automation-execution/*"
        },
        {
            "Sid": "CancelAccessRequestManualApproval",
            "Effect": "Allow",
            "Action": "ssm:StopAutomationExecution",
            "Resource": "arn:aws:ssm:*:*:automation-execution/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/SystemsManagerJustInTimeNodeAccessManaged": "true"
                }
            }
        },
        {
            "Sid": "DescribeEC2Instances",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeTags",
                "ec2:GetPasswordData"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowListSSMManagedNodesAndTags",
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeInstanceInformation",
                "ssm:ListTagsForResource"
            ],
            "Resource": "*"
        },
        {
            "Sid": "QuickSetupConfigurationManagers",
            "Effect": "Allow",
            "Action": [
                "ssm-quicksetup:ListConfigurationManagers",
                "ssm-quicksetup:GetConfigurationManager",
                "ssm-quicksetup:ListConfigurations",
                "ssm-quicksetup:ListQuickSetupTypes",
                "ssm-quicksetup:GetConfiguration"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowSessionManagerOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeSessions",
                "ssm:GetConnectionStatus"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowRDPOperations",
            "Effect": "Allow",
            "Action": [
                "ssm-guiconnect:ListConnections",
                "ssm:GetConnectionStatus"
            ],
            "Resource": "*"
        },
        {
            "Sid": "QuickSetupDeployments",
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListStacks",
                "cloudformation:DescribeStacks",
                "organizations:DescribeOrganization",
                "organizations:ListDelegatedAdministrators"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowSsmJitnaPoliciesReadOnly",
            "Effect": "Allow",
            "Action": [
                "ssm:GetDocument",
                "ssm:DescribeDocument"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:document/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ssm:DocumentType": [
                        "ManualApprovalPolicy",
                        "AutoApprovalPolicy"
                    ]
                }
            }
        },
        {
            "Sid": "AllowSsmJitnaPoliciesListOperations",
            "Effect": "Allow",
            "Action": [
                "ssm:ListDocuments",
                "ssm:ListDocumentVersions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ExploreNodes",
            "Effect": "Allow",
            "Action": [
                "ssm:ListNodesSummary",
                "ssm:ListNodes",
                "ssm:DescribeInstanceProperties"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IdentityStorePermissions",
            "Effect": "Allow",
            "Action": [
                "sso:DescribeRegisteredRegions",
                "sso:ListDirectoryAssociations",
                "identitystore:GetUserId",
                "identitystore:DescribeUser",
                "identitystore:DescribeGroup"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**注記**  
承認ポリシーを作成、更新、または削除する API オペレーションへのアクセスを制限するには、`AutoApprovalPolicy` と `ManualApprovalPolicy ` のドキュメントタイプに対して `ssm:DocumentType` 条件キーを使用します。`StartAccessRequest` と `GetAccessToken` のどちらの API オペレーションも、以下のグローバルコンテキストキーをサポートしません。  
`aws:SourceVpc`
`aws:SourceVpce`
`aws:VpcSourceIp`
`aws:UserAgent`
`aws:MultiFactorAuthPresent`

Systems Manager の条件コンテキストキーの詳細については、「*サービス許可リファレンス*」の「[Condition keys for AWS Systems Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanager.html#awssystemsmanager-policy-keys)」を参照してください。

以下の手順では、ジャストインタイムノードアクセスの最初のセットアップステップを完了する方法について説明します。

**ジャストインタイムノードアクセスをセットアップするには**

1. 組織用の Systems Manager 委任管理者アカウントにログインします。

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、**[ジャストインタイムノードアクセス]** を選択します。

1. **[新しいエクスペリエンスを有効にする]** を選択します。

1. ジャストインタイムノードアクセスを有効にするリージョンを選択します。デフォルトでは、Systems Manager 統合コンソールをセットアップするときに選択したのと同じリージョンがジャストインタイムノードアクセスにも選択されます。Systems Manager 統合コンソールをセットアップするときに選択されなかったリージョンを新たに選択する機能はサポートされていません。

1. **[ジャストインタイムノードアクセスを有効にする]** を選択します。

この機能を有効にしてから 30 日間、ジャストインタイムノードアクセスは無料で使用できます。30 日間のトライアル期間が過ぎると、ジャストインタイムノードアクセスの使用には料金がかかります。詳細については、[AWS Systems Manager 料金](https://aws.amazon.com/systems-manager/pricing/)を参照してください。

# ノードの承認ポリシーを作成する
<a name="systems-manager-just-in-time-node-access-approval-policies"></a>

承認ポリシーでは、ユーザーがノードにアクセスするために必要な承認を定義します。ジャストインタイムノードアクセスでは、IAM ポリシーを通じたノードへの長期的なアクセス許可が不要になるため、ノードへのアクセスを許可する承認ポリシーを作成する必要があります。ノードに適用される承認ポリシーがない場合、ユーザーはノードへのアクセスをリクエストできません。

ジャストインタイムノードアクセスには、3 つのポリシータイプがあります。このポリシータイプは、*自動承認*、*アクセス拒否*、および*手動承認*です。

**ジャストインタイムノードアクセスポリシータイプ**
+ 自動承認ポリシーでは、ユーザーが自動的に接続できるノードを定義します。
+ 手動承認ポリシーでは、指定したノードにアクセスするために必要な手動承認の数とレベルを定義します。
+ アクセス拒否ポリシーを使用すると、指定したノードへのアクセスリクエストの自動承認を明示的に防ぐことができます。

アクセス拒否ポリシーは、AWS Organizations 組織内のすべてのアカウントに適用されます。例えば、`Production` キーでタグ付けされたノードに対して、`Intern` グループの自動承認を明示的に拒否できます。自動承認ポリシーと手動承認ポリシーは、作成元の AWS アカウントと AWS リージョンにのみ適用されます。組織内の各メンバーアカウントが、独自の承認ポリシーを管理します。承認ポリシーは次の順序で評価されます。

1. アクセス拒否

1. 自動承認

1. 手動

組織ごとに 1 つのアクセス拒否ポリシー、アカウントとリージョンごとに 1 つの自動承認ポリシーのみを持つことができますが、アカウントには複数の手動承認ポリシーがある可能性があります。手動承認ポリシーを評価する場合、ジャストインタイムノードアクセスでは、ノードのより具体的なポリシーが常に優先されます。手動承認ポリシーは次の順序で評価されます。

1. タグの具体的なターゲット

1. すべてのノードのターゲット

例えば、`Demo` キーでタグ付けされたノードがあるとします。同じアカウントに、すべてのノードをターゲットとする手動承認ポリシーがあり、1 つのレベルからの 1 つの承認が必要です。また、`Demo` キーでタグ付けされたノードには、2 つのレベルからの 2 つの承認を必要とする手動承認ポリシーもあります。Systems Manager は、`Demo` タグをターゲットとするポリシーをノードに適用します。このポリシーが、すべてのノードをターゲットとするポリシーよりも具体的であるためです。これにより、アカウント内のすべてのノードの一般的なポリシーを作成し、ユーザーがアクセスリクエストを送信できるようにしながら、必要に応じてより詳細なポリシーを作成できます。

組織によっては、ノードに複数のタグが適用される場合があります。このシナリオでは、ノードに複数の手動承認ポリシーが適用されると、アクセスリクエストは失敗します。例えば、ノードに `Production` および `Database` キーがタグ付けされているとします。同じアカウントに、`Production` キーでタグ付けされたノードに適用される手動承認ポリシーと、`Database` キーでタグ付けされたノードに適用される別の手動承認ポリシーがあります。その結果、両方のキーでタグ付けされたノードで競合が発生し、アクセスリクエストが失敗します。Systems Manager は、失敗したリクエストにユーザーをリダイレクトします。ここでは、競合しているポリシーとタグの詳細を表示して、必要なアクセス許可がある場合は必要な調整を行うことができます。そうでない場合は、ポリシーを変更するために必要なアクセス許可を持つ組織内の同僚に通知できます。アクセスリクエストの失敗につながるポリシーの競合は EventBridge イベントを出力するため、独自のレスポンスワークフローを柔軟に構築できます。さらに、Systems Manager はアクセスリクエストの失敗につながるポリシーの競合に関する E メール通知を指定された受信者に送信します。ポリシーの競合用の E メール通知の設定の詳細については、「[ジャストインタイムアクセスリクエストに関する通知を設定する](systems-manager-just-in-time-node-access-notifications.md)」を参照してください。

*アクセス拒否*ポリシーでは、Cedar ポリシー言語を使用して、ユーザーが組織内で明示的に自動的に接続できないノードを定義します。このポリシーは、組織の委任管理者アカウントから作成および共有されます。アクセス拒否ポリシーは、すべての自動承認ポリシーよりも優先されます。組織ごとに 1 つのアクセス拒否ポリシーのみを持つことができます。

*自動承認*ポリシーでは、Cedar ポリシー言語を使用して、手動承認なしで指定されたノードに自動的に接続できるユーザーを定義します。自動的に承認されるアクセスリクエストのアクセス期間は 1 時間です。この値は変更できません。アカウントとリージョンごとに 1 つの自動承認ポリシーのみを持つことができます。

*手動*承認ポリシーでは、アクセス期間、必要な承認レベル数、レベルごとに必要な承認者の数、ジャストインタイムアクセスリクエストを承認できるノードを指定します。手動承認ポリシーのアクセス期間は 1～336 時間である必要があります。複数の承認レベルを指定した場合、アクセスリクエストの承認では一度に 1 つずつレベルが処理されます。つまり、承認プロセスが後続のレベルに移行する前に、1 つのレベルに必要なすべての承認が提供される必要があります。手動承認ポリシーで複数のタグを指定した場合、`and` ステートメントではなく `or` ステートメントとして評価されます。例えば、タグ `Application`、`Web`、および `Test` を含む手動承認ポリシーを作成した場合、これらのキーのいずれかでタグ付けされたすべてのノードにポリシーが適用されます。3 つすべてのキーでタグ付けされたノードにのみポリシーが適用されるわけではありません。

手動ポリシーと自動承認ポリシーを組み合わせて使用して、より重要なデータがあるノードを保護しながら、重要度の低いノードにユーザーが介入なしで接続できるようにすることをお勧めします。例えば、データベースノードへのアクセスリクエストには手動承認を義務づけ、永続的でないプレゼンテーション層のノードへのセッションは自動承認します。

次の手順では、ジャストインタイムノードアクセス用の承認ポリシーを作成する方法について説明します。

**Topics**
+ [

# ジャストインタイムノードアクセス用の手動承認ポリシーを作成する
](systems-manager-just-in-time-node-access-create-manual-policies.md)
+ [

# 自動承認ポリシーとアクセス拒否ポリシーのステートメントの構造とビルトイン演算子
](auto-approval-deny-access-policy-statement-structure.md)
+ [

# ジャストインタイムノードアクセスの自動承認ポリシーを作成する
](systems-manager-just-in-time-node-access-create-auto-approval-policies.md)
+ [

# ジャストインタイムノードアクセス用のアクセス拒否ポリシーを作成する
](systems-manager-just-in-time-node-access-create-deny-access-policies.md)
+ [

# Amazon Q を使用してジャストインタイムノードアクセスの承認ポリシーを作成する
](systems-manager-just-in-time-node-access-create-approval-policies-q-ide-cli.md)

# ジャストインタイムノードアクセス用の手動承認ポリシーを作成する
<a name="systems-manager-just-in-time-node-access-create-manual-policies"></a>

以下の手順では、手動承認ポリシーを作成する方法について説明します。Systems Manager では、AWS アカウントと AWS リージョンごとに手動承認ポリシーを最大 50 個作成できます。

**手動承認ポリシーを作成するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、**[ノードアクセスを管理]** を選択します。

1. **[手動承認ポリシーの作成]** ステップの **[ポリシーの詳細]** セクションで、承認ポリシーの名前と説明を入力します。

1. **[アクセス期間]** の値を入力します。これは、アクセスリクエストの承認後にユーザーがノードへのセッションを開始できる最大時間です。1～336 の値で時間を指定する必要があります。

1. **[ノードターゲット]** セクションで、ポリシーを適用するノードに関連付けられたタグキーと値のペアを入力します。ポリシーに指定されているタグのいずれもノードに関連付けられていない場合、ポリシーはノードに適用されません。

1. **[アクセスリクエスト承認者]** セクションで、ポリシー内のノードターゲットへのアクセスリクエストを承認できるようにするユーザーまたはグループを入力します。アクセスリクエスト承認者には、IAM アイデンティティセンターユーザーとグループ、または IAM ロールを指定することが可能です。レベルごとに最大 5 人の承認者と、最大 5 レベルの承認者を指定できます。

1. **[手動承認ポリシーの作成]** を選択します。

# 自動承認ポリシーとアクセス拒否ポリシーのステートメントの構造とビルトイン演算子
<a name="auto-approval-deny-access-policy-statement-structure"></a>

次の表は、自動承認ポリシーとアクセス拒否ポリシーの構造を示しています。


| コンポーネント | 構文 | 
| --- | --- | 
| effect |  `permit \| forbid`  | 
| scope |  `(principal, action, resource)`  | 
| 条件句 |  <pre>when {<br />    principal or resource has attribute name             <br />};</pre>  | 

## ポリシーの構成要素
<a name="policy-components"></a>

自動承認ポリシーまたはアクセス拒否ポリシーには、次のコンポーネントが含まれます。
+ **効果** - アクセスの `permit` (許可) または `forbid` (拒否)。
+ **スコープ** - 効果を適用するプリンシパル、アクション、リソース。特定のプリンシパル、アクション、リソースを指定しないでおくと、Cedar のスコープを未定義のままにすることができます。この場合、ポリシーはすべてのプリンシパル、アクション、リソースに適用されます。ジャストインタイムノードアクセスの場合、`action` は常に `AWS::SSM::Action::"getTokenForInstanceAccess"` です。
+ **条件句** - 効果が適用されるコンテキスト。

## コメント
<a name="auth-policies-policy-comments"></a>

 ポリシーにコメントを含めることができます。コメントは、`//` で始まり改行文字で終わる行として定義されます。

以下の例は、ポリシー内のコメントを示しています。

```
// Allows users in the Engineering group from the Platform org to automatically connect to nodes tagged with Engineering and Production keys. 
permit (
    principal in AWS::IdentityStore::Group::"d4q81745-r081-7079-d789-14da1EXAMPLE",
    action == AWS::SSM::Action::"getTokenForInstanceAccess",
    resource
)
when {
    principal has organization && resource.hasTag("Engineering") && resource.hasTag("Production") && principal.organization == "Platform"
};
```

## 複数の句
<a name="multiple-clauses"></a>

`&&` 演算子を使用すると、1 つのポリシーステートメントに複数の条件句を含めることができます。

```
// Allow access if node has tag where the tag key is Environment 
// & tag value is Development 

permit(principal, action == AWS::SSM::getTokenForInstanceAccess, resource)
when {
    resource.hasTag("Environment") &&
    resource.getTag("Environment") == "Development"
};
```

## 予約文字
<a name="reserved-characters"></a>

次の例は、コンテキストのプロパティでポリシー言語の予約文字である `:` (セミコロン) が使用されている場合のポリシーの記述方法を示しています。

```
permit (
    principal,
    action == AWS::SSM::Action::"getTokenForInstanceAccess",
    resource
)
when {
    principal has employeeNumber && principal.employeeNumber like "E-1*" && resource.hasTag("Purpose") && resource.getTag("Purpose") == "Testing"
}
```

その他の例については、「[ポリシーステートメントの例](#policy-statement-examples)」を参照してください。

## ジャストインタイムノードアクセスのスキーマ
<a name="auto-approval-deny-access-policy-statement-schema"></a>

以下は、ジャストインタイムノードアクセス用の Cedar スキーマです。

```
namespace AWS::EC2 {
    entity Instance tags String;
}


namespace AWS::IdentityStore {
    entity Group;
    
    entity User in [Group] {
    employeeNumber?: String,
    costCenter?: String,
    organization?: String,
    division?: String,
    };

}


namespace AWS::IAM {

    entity Role;
    
    type AuthorizationContext = {
        principalTags: PrincipalTags,
    };
    
    entity PrincipalTags tags String;
}

namespace AWS::SSM {

    entity ManagedInstance tags String;

    action "getTokenForInstanceAccess" appliesTo {
    principal: [AWS::IdentityStore::User],
    resource: [AWS::EC2::Instance, AWS::SSM::ManagedInstance],
    context: {
        "iam": AWS::IAM::AuthorizationContext
        }
    };
}
```

## ビルトイン演算子
<a name="built-in-policy-operators"></a>

さまざまな条件を使用して自動承認ポリシーまたはアクセス拒否ポリシーのコンテキストを作成する場合は、`&&` 演算子を使用して追加条件を指定できます。ポリシー条件にさらに表現力を加えるために使用できるビルトイン演算子は他にも多数あります。参照用にすべてのビルトイン演算子を下表に示します。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/auto-approval-deny-access-policy-statement-structure.html)

## ポリシーステートメントの例
<a name="policy-statement-examples"></a>

ポリシーステートメントの例を以下に示します。

```
// Users assuming IAM roles with a principal tag of "Elevated" can automatically access nodes tagged with the "Environment" key when the value equals "prod"
permit(principal, action == AWS::SSM::getTokenForInstanceAccess, resource)
when {
    // Verify IAM role principal tag
    context.iam.principalTags.getTag("AccessLevel") == "Elevated" &&
    
    // Verify the node has a tag with "Environment" tag key and a tag value of "prod"
    resource.hasTag("Environment") &&
    resource.getTag("Environment") == "prod"
};
```

```
// Identity Center users in the "Contractor" division can automatically access nodes tagged with the "Environment" key when the value equals "dev"
permit(principal, action == AWS::SSM::getTokenForInstanceAccess, resource)
when {
    // Verify that the user is part of the "Contractor" division
    principal.division == "Contractor" &&
    
    // Verify the node has a tag with "Environment" tag key and a tag value of "dev"
    resource.hasTag("Environment") &&
    resource.getTag("Environment") == "dev"
};
```

```
// Identity Center users in a specified group can automatically access nodes tagged with the "Environment" key when the value equals "Production"
permit(principal in AWS::IdentityStore::Group::"d4q81745-r081-7079-d789-14da1EXAMPLE",
    action == AWS::SSM::getTokenForInstanceAccess,
    resource)
when {
    resource.hasTag("Environment") &&
    resource.getTag("Environment") == "Production"
};
```

# ジャストインタイムノードアクセスの自動承認ポリシーを作成する
<a name="systems-manager-just-in-time-node-access-create-auto-approval-policies"></a>

自動承認ポリシーでは、Cedar ポリシー言語を使用して、どのユーザーが指定されたノードに手動承認なしで自動的に接続できるかを定義します。自動承認ポリシーには、`principal` と `resource` を指定する `permit` ステートメントがいくつか含まれています。各ステートメントには、自動承認の条件を定義する `when` 句があります。

次に、自動承認ポリシーの例を示します。

```
permit (
    principal in AWS::IdentityStore::Group::"e8c17310-e011-7089-d989-10da1EXAMPLE",
    action == AWS::SSM::Action::"getTokenForInstanceAccess",
    resource
)
when {
    principal has costCenter && resource.hasTag("CostCenter") && principal.costCenter == resource.getTag("CostCenter")
};

permit (
    principal in AWS::IdentityStore::Group::"d4q81745-r081-7079-d789-14da1EXAMPLE",
    action == AWS::SSM::Action::"getTokenForInstanceAccess",
    resource
)
when {
    principal has organization && resource.hasTag("Engineering") && resource.hasTag("Production") && principal.organization == "Platform"
};

permit (
    principal,
    action == AWS::SSM::Action::"getTokenForInstanceAccess",
    resource
)
when {
    principal has employeeNumber && principal.employeeNumber like "E-1*" && resource.hasTag("Purpose") && resource.getTag("Purpose") == "Testing"
};
```

以下の手順では、ジャストインタイムノードアクセス用に自動承認ポリシーを作成する方法について説明します。自動的に承認されるアクセスリクエストのアクセス期間は 1 時間です。この値は変更できません。AWS アカウントと AWS リージョンごとに自動承認ポリシーを 1 つのみ設定できます。ポリシーステートメントを作成する方法の詳細については、「[自動承認ポリシーとアクセス拒否ポリシーのステートメントの構造とビルトイン演算子](auto-approval-deny-access-policy-statement-structure.md)」を参照してください。

**自動承認ポリシーを作成するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、**[ノードアクセスを管理]** を選択します。

1. **[承認ポリシー]** タブで、**[自動承認ポリシーを作成]** を選択します。

1. **[ポリシーステートメント]** セクションに自動承認ポリシー用のポリシーステートメントを入力します。あらかじめ用意されている **[サンプルステートメント]** を使用すると、ポリシーを簡単に作成できます。

1. **[自動承認ポリシーを作成]** を選択します。

# ジャストインタイムノードアクセス用のアクセス拒否ポリシーを作成する
<a name="systems-manager-just-in-time-node-access-create-deny-access-policies"></a>

アクセス拒否ポリシーでは、Cedar ポリシー言語を使用して、ユーザーが手動承認なしでどのノードに自動的には接続できないかを定義します。アクセス拒否ポリシーには、`principal` と `resource` を指定する `forbid` ステートメントがいくつか含まれています。各ステートメントには、自動承認を明示的に拒否する条件を定義する `when` 句があります。

次に、アクセス拒否ポリシーの例を示します。

```
forbid (
    principal in AWS::IdentityStore::Group::"e8c17310-e011-7089-d989-10da1EXAMPLE",
    action == AWS::SSM::Action::"getTokenForInstanceAccess",
    resource
)
when {
    resource.hasTag("Environment") && resource.getTag("Environment") == "Production"
};

forbid (
    principal,
    action == AWS::SSM::Action::"getTokenForInstanceAccess",
    resource
)
when {
    principal has division && principal.division != "Finance" && resource.hasTag("DataClassification") && resource.getTag("DataClassification") == "Financial"
};


forbid (
    principal,
    action == AWS::SSM::Action::"getTokenForInstanceAccess",
    resource
)
when {
    
    principal has employeeNumber && principal.employeeNumber like "TEMP-*" && resource.hasTag("Criticality") && resource.getTag("Criticality") == "High"
};
```

以下の手順では、ジャストインタイムノードアクセス用にアクセス拒否ポリシーを作成する方法について説明します。ポリシーステートメントを作成する方法の詳細については、「[自動承認ポリシーとアクセス拒否ポリシーのステートメントの構造とビルトイン演算子](auto-approval-deny-access-policy-statement-structure.md)」を参照してください。

**注記**  
以下の情報に注意してください。  
アクセス拒否ポリシーを作成するには、AWS 管理アカウントまたは委任管理者アカウントにログインしている必要があります。AWS Organizations 組織は、アクセス拒否ポリシーを 1 つのみ設定できます。
ジャストインタイムノードアクセスは AWS Resource Access Manager (AWS RAM) を使用して、拒否アクセスポリシーを組織内のメンバーアカウントと共有します。拒否アクセスポリシーを組織内のメンバーアカウントと共有する場合は、組織の管理アカウントからリソース共有を有効にする必要があります。詳細については、「AWS RAM ユーザーガイド」の「[AWS Organizations 内でリソース共有を有効にする](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs)」を参照してください。

**アクセス拒否ポリシーを作成するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、**[ノードアクセスを管理]** を選択します。

1. **[承認ポリシー]** タブで、**[アクセス拒否ポリシーを作成]** を選択します。

1. **[ポリシーステートメント]** セクションにアクセス拒否ポリシー用のポリシーステートメントを入力します。あらかじめ用意されている **[サンプルステートメント]** を使用すると、ポリシーを簡単に作成できます。

1. **[アクセス拒否ポリシーを作成]** を選択します。

# Amazon Q を使用してジャストインタイムノードアクセスの承認ポリシーを作成する
<a name="systems-manager-just-in-time-node-access-create-approval-policies-q-ide-cli"></a>

コマンドライン用の Amazon Q Developer を使用すると、ソフトウェア開発のさまざまな側面でガイダンスとサポートが提供されます。ジャストインタイムノードアクセスの場合、Amazon Q は、ポリシーのコードの生成および更新や、ポリシーステートメントの分析などにより、承認ポリシーを作成する際に役立ちます。以下の情報は、コマンドライン用の Amazon Q を使用して承認ポリシーを作成する方法を示しています。

## ユースケースの特定
<a name="identify-use-case"></a>

承認ポリシーを作成する最初のステップは、ユースケースを明確に定義することです。例えば、組織で `Environment:Testing` タグを持つノードへのアクセスリクエストを自動的に承認できます。また、従業員 ID が `TEMP` で始まる場合に、`Environment:Production` タグを持つノードへの自動承認を明示的に拒否することもできます。`Tier:Database` タグを持つノードについて、2 つのレベルの手動承認を必要とすることもできます。

特定のシナリオで、あるポリシーまたは条件を別のポリシーまたは条件よりも優先できます。そのため、ユースケースと設定に最適なステートメントを決定するために必要なポリシーの動作を明確に定義することをお勧めします。

## 開発環境をセットアップする
<a name="set-up-environment"></a>

承認ポリシーを作成するコマンドライン用の Amazon Q をインストールします。コマンドライン用の Amazon Q のインストールについては、「*Amazon Q Developer ユーザーガイド*」の「[Installing Amazon Q for command line](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html)」を参照してください。

また、AWS ドキュメントの MCP サーバーをインストールすることをお勧めします。この MCP サーバーは、コマンドライン用の Amazon Q を最新のドキュメントリソースに接続します。コマンドライン用の Amazon Q との MCP の使用の詳細については、「*Amazon Q Developer ユーザーガイド*」の「[Using MCP with Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp.html)」を参照してください。

AWS ドキュメント MCP サーバーの詳細については、「[AWS Documentation MCP Server](https://awslabs.github.io/mcp/servers/aws-documentation-mcp-server/)」を参照してください。

まだ AWS CLI をインストールして設定していない場合は、インストールして設定します。詳細については、「[AWS CLI の最新バージョンのインストールまたは更新](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。

## 承認ポリシーの内容を開発する
<a name="develop-content"></a>

ユースケースを特定して環境をセットアップしたら、ポリシーの内容を開発できます。主にユースケースと設定によって、使用する承認ポリシーとステートメントのタイプが決まります。

特定のポリシーの使用方法が不明な場合や、ポリシーのスキーマに関する詳細情報が必要な場合は、「[ノードの承認ポリシーを作成する](systems-manager-just-in-time-node-access-approval-policies.md)」および以降のトピックを参照してください。これらのトピックでは、ポリシーの評価方法を詳しく説明し、実用的なステートメントの例を示しています。

以下の手順は、コマンドライン用の Amazon Q を使用して承認ポリシーを作成する方法を示しています。

**注記**  
Amazon Q Developer は生成 AI を使用します。レスポンスの検証が必要になる場合があります。「[AWS 責任ある AI ポリシー](https://aws.amazon.com/ai/responsible-ai/policy/)」を参照してください。

**コマンドライン用の Amazon Q を使用して承認ポリシーを作成するには**

1. ターミナルを開き、Amazon Q とのセッションを開始します。

   ```
   $ q chat
   ```

1. プロンプトを入力し、作成するポリシーステートメントの種類を記述します。例えば、承認ポリシーの前述のシナリオを使用して、次のプロンプトを入力できます。

   ```
   Create a Cedar policy statement that allows a principal to use the “getTokenForInstanceAccess" action for a resource 
   that has a tag key “Environment” and tag value of “Testing”. Use the following example statement for reference to verify the syntax.
   
   permit (
       principal in AWS::IdentityStore::Group::"e8c17310-e011-7089-d989-10da1EXAMPLE",
       action == AWS::SSM::Action::"getTokenForInstanceAccess",
       resource
   )
   when {
       principal has organization && resource.hasTag("Engineering") && resource.hasTag("Production") && principal.organization == "Platform"
   };
   
   The Cedar policy statement you create must be valid. Validate the Cedar statement using the AWS documentation provided for just-in-time node access policy statement structure and make sure you abide by the schema.
   ```

1. このプロンプト例を入力すると、次のように出力されます。

   ```
   Based on the AWS documentation for Cedar policy statements and the examples provided, I'll create a valid Cedar policy 
   statement that allows a principal to use the "getTokenForInstanceAccess" action for resources with the tag key "Environment" and tag value "Testing".
                               
   Here's the Cedar policy statement:
   
   permit (
       principal,
       action == AWS::SSM::Action::"getTokenForInstanceAccess",
       resource
   )
   when {
       resource.hasTag("Environment") &&
       resource.getTag("Environment") == "Testing"
   };
   
   
   This policy statement:
   1. Uses the permit effect to allow access
   2. Applies to any principal (since no specific principal is defined)
   3. Specifically targets the "getTokenForInstanceAccess" action
   4. Applies to resources that have a tag with key "Environment" and value "Testing"
   5. Uses the proper syntax for the condition clause with the hasTag() and getTag() operators
   
   The statement follows the Cedar policy language structure as documented in the AWS Systems Manager documentation for just-in-time node access policies.
   ```

1. ポリシーステートメントを新しい Cedar ファイルに貼り付けて、構文を検証します。[Cedar プレイグラウンド](https://www.cedarpolicy.com/en/playground)を使用してステートメントを検証することもできます。

1. ステートメントを検証したら、Cedar ファイルを保存します。

1. ターミナルから次の AWS CLI コマンドを実行して、ポリシーの内容を使用して SSM ドキュメントを作成します。本番環境で承認ポリシーを使用する前に、AWS アカウントおよび AWS リージョンの ID とノードのサブセットを使用して承認ポリシーをテストします。
**注記**  
自動承認ポリシーの場合、ドキュメント名は `SSM-JustInTimeAccessAutoApprovalPolicy` である必要があります。AWS アカウントおよび AWS リージョンごとに 1 つの自動承認ポリシーのみが存在できます。アクセス拒否ポリシーの場合、ドキュメント名は `SSM-JustInTimeAccessDenyAccessOrgPolicy` である必要があります。AWS Organizations 組織ごとに 1 つのアクセス拒否ポリシーのみが存在できます。このポリシーは、Systems Manager の委任管理者アカウントで作成する必要があります。手動承認ポリシーの命名に関する制約は、他の SSM ドキュメントと同じです。詳細については、「[CreateDocument](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Name)」を参照してください。

------
#### [ Linux & macOS ]

   ```
   aws ssm create-document \
       --content file://path/to/file/policyContent.cedar \
       --name "SSM-JustInTimeAccessAutoApprovalPolicy" \
       --document-type "AutoApproval"
   ```

------
#### [  Server   ]

   ```
   aws ssm create-document ^
       --content file://C:\path\to\file\policyContent.cedar ^
       --name "SSM-JustInTimeAccessAutoApprovalPolicy" ^
       --document-type "AutoApproval"
   ```

------
#### [   PowerShell   ]

   ```
   $cedar = Get-Content -Path "C:\path\to\file\policyContent.cedar" | Out-String
   New-SSMDocument `
       -Content $cedar `
       -Name "SSM-JustInTimeAccessAutoApprovalPolicy" `
       -DocumentType "AutoApproval"
   ```

------

# ジャストインタイムノードアクセスセッション設定を更新する
<a name="systems-manager-just-in-time-node-access-session-preferences"></a>

ジャストインタイムノードアクセスでは、組織内の AWS アカウントと AWS リージョンごとにセッション記録とログ記録の全般的な設定を指定できます。あるいは、CloudFormation StackSets を使用して複数のアカウントとリージョンに 1 つのセッション設定ドキュメントを作成することで、セッション設定の一貫性を保つことができます。セッション設定ドキュメントのスキーマについては、「[セッションドキュメントスキーマ](session-manager-schema.md)」を参照してください。

ログ記録の用途には、Amazon CloudWatch Logs でストリーミングオプションを使用することをお勧めします。この機能により、セッションデータログの連続ストリームを CloudWatch Logs に送信できます。セッションデータのストリーミングには、ユーザーがセッションで実行したコマンド、コマンドを実行したユーザーの ID、セッションデータが CloudWatch Logs にストリーミングされた時のタイムスタンプなど、重要な詳細情報が含まれます。セッションデータをストリーミングする場合、ログは JSON 形式で、既存のログソリューションとの統合に役立ちます。

Systems Manager は、ジャストインタイムノードアクセスセッションを自動的には終了しません。*最大セッション期間*設定と*アイドルセッションタイムアウト*設定に値を指定するのがベストプラクティスです。これらの設定を使用すると、ユーザーがアクセスリクエストで承認された時間枠よりも長くノードに接続したままにするのを防ぐことができます。以下の手順では、ジャストインタイムノードアクセスのセッション設定を更新する方法について説明します。

**重要**  
ジャストインタイムノードアクセスの Session Manager 暗号化と RDP 記録に使用する AWS KMS キーにタグキー `SystemsManagerJustInTimeNodeAccessManaged` とタグ値 `true` でタグ付けする必要があります。  
KMS キーのタグ付けの詳細については、「AWS Key Management Service デベロッパーガイド」の「[Tags in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)」を参照してください。

**セッション設定を更新するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインの **[設定]** を選択します。

1. **[ジャストインタイムノードアクセス]** タブを選択します。

1. **[セッション設定]** セクションで、**[編集]** を選択します。

1. 必要に応じて全般的な設定とログ記録の設定を更新し、**[保存]** を選択します。

# ジャストインタイムアクセスリクエストに関する通知を設定する
<a name="systems-manager-just-in-time-node-access-notifications"></a>

ユーザーがジャストインタイムノードアクセスリクエストを作成したら、承認者とリクエスタの E メールアドレスまたはチャットクライアントに通知を送信するように、Systems Manager を設定できます。通知にはリクエスタが指定したアクセスリクエストの理由、AWS アカウント、AWS リージョン、リクエストのステータス、ターゲットノードの ID が含まれています。現在、チャットアプリケーションに Amazon Q Developer が統合されたことで、Systems Manager は Slack クライアントと Microsoft Teams クライアントをサポートしています。チャットクライアントで通知を使用するときに、アクセスリクエスト承認者はアクセスリクエストと直接対話できます。このため、アクセスリクエストを操作するためにコンソールにログインする必要がなくなります。

**[開始する前に]**  
ジャストインタイムノードアクセス通知用にチャットクライアントを設定する前に、次の要件に注意してください。
+ 現在 IAM ロールを使用してアカウント内のユーザー ID を管理している場合は、通知の送信先となる承認者またはリクエスタの E メールアドレスを、関連付けられたロールに手動で関連付ける必要があります。そうしないと、E メールで目的の受信者に通知できません。

以下の手順では、ジャストインタイムノードアクセスリクエストに関する通知を設定する方法について説明します。

**ジャストインタイムノードアクセスの通知を受け取れるようにチャットクライアントを設定するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインの **[設定]** を選択します。

1. **[ジャストインタイムノードアクセス]** タブを選択します。

1. **[チャット]** セクションで、**[新しいクライアントを設定]** を選択します。

1. **[クライアントタイプを選択]** ドロップダウンで、設定するチャットクライアントのタイプを選択し、**[次へ]** を選択します。

1. チャットアプリケーションの Amazon Q Developer からチャットクライアントへのアクセスを許可するように求められます。**[許可]** を選択します。

1. **[チャネルを設定]** セクションで、チャットクライアントチャネルに関する情報を入力し、受け取る通知のタイプを選択します。

1. Slack 通知を設定する場合は、通知が設定されているすべての Slack チャネルに「@Amazon Q」を招待します。

1. **[チャネルを設定]** を選択します。

**注記**  
Slack チャネルから直接アクセスリクエストを承認または拒否できるようにするには、Slack チャネルで設定された IAM ロールに `ssm:SendAutomationSignal` アクセス許可があり、チャットボットを含む信頼ポリシーがあることを確認してください。  

```
{
            "Effect": "Allow",
            "Principal": {
                "Service": "chatbot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
}
```

**ジャストインタイムノードアクセスの通知を受け取れるように E メール通知を設定するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインの **[設定]** を選択します。

1. **[ジャストインタイムノードアクセス]** タブを選択します。

1. **[E メール]** セクションで、**[編集]** を選択します。

1. **[E メールの追加]** を選択し、E メールアドレスを手動で関連付ける **IAM ロール**を選択します。

1. **[E メールアドレス]** フィールドに E メールアドレスを入力します。指定した IAM ロールによる承認が必要なアクセスリクエストが作成されるたびに、そのロールに関連付けた E メールアドレスに通知が届きます。

1. **[E メールアドレスの追加]** を選択します。

# RDP 接続を記録する
<a name="systems-manager-just-in-time-node-access-rdp-recording"></a>

ジャストインタイムノードアクセスには、Windows Server ノードへの RDP 接続を記録する機能があります。RDP 接続を記録するには、S3 バケットおよび AWS Key Management Service (AWS KMS) カスタマーマネージドキーが必要です。AWS KMS key は、記録対象のデータが生成されて Systems Manager リソースに保存される際に一時的に暗号化するために使用されます。カスタマーマネージドキーは、暗号化と復号を主な用途とする対称キーでなければなりません。組織で 1 つのマルチリージョンキーを使用することもできれば、ジャストインタイムノードアクセスを有効にしたリージョンごとにカスタマーマネージドキーを作成しなければならないこともあります。

記録を保存する S3 バケットで KMS 暗号化を有効にしている場合は、バケット暗号化に使用されるカスタマーマネージドキーへのアクセスを `ssm-guiconnect` サービスプリンシパルに提供する必要があります。このカスタマーマネージドキーは、記録設定で指定したものとは異なる場合があります。これには、接続を確立するために必要な `kms:CreateGrant` アクセス許可を含める必要があります。

## RDP 記録用の S3 バケット暗号化の設定
<a name="rdp-recording-bucket-encryption"></a>

接続記録は、RDP 記録を有効にするときに指定した S3 バケットに保存されます。

S3 バケット (SSE-KMS) のデフォルトの暗号化メカニズムとして KMS キーを使用する場合は、`ssm-guiconnect` サービスプリンシパルにキーに対する `kms:GenerateDataKey` アクションへのアクセスを許可する必要があります。S3 バケットで SSE-KMS 暗号化を使用する場合は、カスタマーマネージドキーを使用することをお勧めします。お勧めする理由は、カスタマーマネージドキーの関連付けられたキーポリシーを更新できるためです。AWS マネージドキー のキーポリシーを更新することはできません。

**重要**  
ジャストインタイムノードアクセスの Session Manager 暗号化と RDP 記録に使用する AWS KMS キーにタグキー `SystemsManagerJustInTimeNodeAccessManaged` とタグ値 `true` でタグ付けする必要があります。  
KMS キーのタグ付けの詳細については、「AWS Key Management Service デベロッパーガイド」の「[Tags in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)」を参照してください。

次のカスタマーマネージドキーポリシーを使用して、S3 ストレージの KMS キーへの `ssm-guiconnect` サービスアクセスを許可します。カスタマーマネージドキーの更新の詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[キーポリシーの変更](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)」を参照してください。

各 *example resource placeholder* をユーザー自身の情報に置き換えます。
+ *account-id* は、接続を開始する AWS アカウントの ID を表します。
+ *region* は、S3 バケットが位置する AWS リージョンを表します。(バケットが複数のリージョンからの録画を受信する場合、`*` を使用できます。例: `s3.*.amazonaws.com`。)

**注記**  
アカウントが AWS Organizations の組織に属している場合、`aws:SourceAccount` の代わりにポリシーの `aws:SourceOrgID` を使用できます。

```
{
    "Sid": "Allow the GUI Connect service principal to access S3",
    "Effect": "Allow",
    "Principal": {
        "Service": "ssm-guiconnect.amazonaws.com"
    },
    "Action": [
        "kms:GenerateDataKey*"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "account-id"
        },
        "StringLike": {
            "kms:ViaService": "s3.region.amazonaws.com"
        }
    }
}
```

## RDP 接続を記録するように IAM アクセス許可を設定する
<a name="rdp-recording-iam-policy-examples"></a>

ジャストインタイムノードアクセスに IAM アクセス許可が必要になるほか、実行する必要があるタスクに基づいて、使用するユーザーやロールに対して以下のアクセス許可を付与する必要があります。

**接続を記録するように設定するためのアクセス許可**  
RDP 接続を記録するように設定するには、以下のアクセス許可が必要です。
+ `ssm-guiconnect:UpdateConnectionRecordingPreferences`
+ `ssm-guiconnect:GetConnectionRecordingPreferences`
+ `ssm-guiconnect:DeleteConnectionRecordingPreferences`
+ `kms:CreateGrant`

**接続を開始するためのアクセス許可**  
ジャストインタイムノードアクセスとの RDP 接続を確立するには、以下のアクセス許可が必要です。
+ `ssm-guiconnect:CancelConnection`
+ `ssm-guiconnect:GetConnection`
+ `ssm-guiconnect:StartConnection`
+ `kms:CreateGrant`

**[開始する前に]**  
接続の記録を保存するには、まず S3 バケットを作成し、以下のバケットポリシーを追加する必要があります。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

(バケットポリシーの追加方法の詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[Amazon S3 コンソールを使用したバケットポリシーの追加](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)」を参照してください)

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConnectionRecording",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "ssm-guiconnect.amazonaws.com"
                ]
            },
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket", 
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition":{
            "StringEquals":{
                "aws:SourceAccount":"111122223333"
                }
            }            
        }
    ]
}
```

------

## RDP 接続記録の有効化と設定
<a name="enable-rdp-connection-recording"></a>

以下の手順では、RDP 接続の記録を有効にして設定する方法について説明します。

**RDP 接続記録を有効化および設定するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインの **[設定]** を選択します。

1. **[ジャストインタイムノードアクセス]** タブを選択します。

1. **[RDP 記録]** セクションで、**[RDP 記録を有効にする]** を選択します。

1. セッション記録のアップロード先となる S3 バケットを選択します。

1. 記録対象のデータが生成されて Systems Manager リソースに保存される際に、データの一時的な暗号化に使用するカスタマーマネージドキーを選択します。(これは、バケットの暗号化に使用するものとは異なるカスタマーマネージドキーにすることができます。)

1. **[保存]** を選択します。

## RDP 接続の記録ステータス値
<a name="rdp-recording-status"></a>

RPD 接続記録の有効なステータス値は次のとおりです。
+ `Recording` - 接続は記録中です。
+ `Processing` - 接続が終了した後、動画が処理されています。
+ `Finished` - 正常な終了状態: 接続録画の動画が正常に処理され、指定されたバケットにアップロードされました。
+ `Failed` - 失敗した終了状態。接続は正常に記録されませんでした。
+ `ProcessingError` - 動画処理中に 1 つ以上の中間障害/エラーが発生しました。考えられる原因には、記録の保存用に指定された S3 バケットの設定ミスによるサービス依存関係の問題やアクセス許可の不足などがあります。記録がこの状態にある場合、サービスは処理を試行し続けます。

**注記**  
`ProcessingError` は、接続の確立後に S3 バケットにオブジェクトをアップロードするアクセス許可が `ssm-guiconnect` サービスプリンシパルに付与されていない可能性があります。もう 1 つの考えられる原因は、S3 バケット暗号化に使用される KMS キーに対する KMS アクセス許可がないことです。

# ターゲットを変更する
<a name="systems-manager-just-in-time-node-access-modify-targets"></a>

ジャストインタイムノードアクセスを設定するときに、ジャストインタイムノードアクセスをセットアップする*ターゲット*を選択します。ターゲットは、AWS Organizations 組織単位 (OU) と AWS リージョンで構成されています。デフォルトでは、Systems Manager 統合コンソールをセットアップするときに選択したのと同じターゲットがジャストインタイムノードアクセスにも選択されます。ジャストインタイムノードアクセスは、同じすべてのターゲットにセットアップすることも、Systems Manager 統合コンソールをセットアップするときに指定したターゲットのサブセットにセットアップすることもできます。Systems Manager 統合コンソールをセットアップするときに選択されなかったターゲットを新たに追加する機能はサポートされていません。ジャストインタイムノードアクセスをセットアップした後で選択したターゲットを変更できます。

以下の手順では、ジャストインタイムノードアクセスのターゲットを変更する方法について説明します。

**ターゲットを変更するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインの **[設定]** を選択します。

1. **[ジャストインタイムノードアクセス]** タブを選択します。

1. **[ターゲット]** セクションで、**[編集]** を選択します。

1. ジャストインタイムノードアクセスを使用する **[組織単位]** と **[リージョン]** を選択します。

1. **[保存]** を選択します。

# ID プロバイダーを変更する
<a name="systems-manager-just-in-time-node-access-change-identity-provider"></a>

デフォルトでは、ジャストインタイムノードアクセスでは ID プロバイダーに IAM が使用されます。ジャストインタイムノードアクセスを有効にした後に、組織で統合コンソールを使用しているお客様は、IAM アイデンティティセンターを使用するようにこの設定を変更できます。単一のアカウントとリージョン用に設定する場合、ジャストインタイムノードアクセスでは、ID プロバイダーとして IAM アイデンティティセンターはサポートされていません。

次の手順では、ジャストインタイムノードアクセスの ID プロバイダーを変更する方法について説明します。

**ID プロバイダーを変更するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインの **[設定]** を選択します。

1. **[ジャストインタイムノードアクセス]** タブを選択します。

1. **[ユーザー ID]** セクションで、**[編集]** を選択します。

1. **[AWS IAM アイデンティティセンター]** を選択します。

1. **[保存]** を選択します。