IAM 安全最佳实践 - Amazon SDK对于 SAP ABAP
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

IAM 安全最佳实践

IAM 管理员将负责以下三个关键领域的安全。

  • 确保 SAP 系统可使用 Amazon EC2 元数据或密钥凭证自行验证身份。

  • 确保 SAP 系统具有提升 sts:assumeRole 所需的权限。

  • 为 SAP 用户创建 IAM 逻辑角色,其具有执行业务职能所需的权限(如执行 Amazon S3、DynamoDB 或其他服务所需的权限)。这些都是 SAP 用户将会代入的角色。

有关更多信息,请参阅 SAP Lens:Amazon Well-Architected Framework 中的安全一章。

适用于 Amazon EC2 实例配置文件的最佳实践

为您运行 SAP 系统的 Amazon EC2 实例具有一组基于其实例配置文件的权限。这类实例配置文件通常只需要具有调用 sts:assumeRole 的权限,即可允许 SAP 系统按需代入业务特定的 IAM 角色。提升其他角色可确保 ABAP 程序代入角色,向用户授予履职所需的最低权限。例如,实例配置文件可能包含以下声明。

{     "Version": "2012-10-17",     "Statement": [         {             "Sid": "VisualEditor0",             "Effect": "Allow",             "Action": "sts:AssumeRole",             "Resource": [                 "arn:aws:iam::0123456789:role/finance-cfo",                 "arn:aws:iam::0123456789:role/finance-auditor",                 "arn:aws:iam::0123456789:role/finance-reporting"             ]         }     ] }

上述示例允许 SAP 系统代入 CFO、AUDITOR 或 REPORTING 用户身份的 IAM 角色。AmazonSDK 将根据用户在 SAP 中的 PFCG 角色选择合适的 IAM 角色。

Amazon EC2 实例配置文件也适用于其他功能。

这些解决方案可能还需要特定于备份或失效转移的 sts:assumeRole 角色的权限,或者需要直接分配给实例配置文件的权限。

适用于 SAP 用户的 IAM 角色

ABAP 程序需具有权限才能执行用户作业:读取 DynamoDB 表、在 Amazon S3 的 PDF 对象上调用 Amazon Textract,以及运行 Amazon Lambda 函数。所有 Amazon SDK 均使用相同的安全模型。您可以使用另一个 Amazon SDK 所用的现有 IAM 角色。

SAP 业务分析师将针对每个所需的逻辑角色,向 IAM 管理员要求 IAM 角色的 arn:aws:。例如,业务分析师会在财务场景中定义以下 IAM 逻辑角色。

  • CFO

  • AUDITOR

  • REPORTING

IAM 管理员将为每个 IAM 逻辑角色定义 IAM 角色。

CFO

  • arn:aws:iam::0123456789:role/finance-cfo

  • Amazon S3 存储桶的读写权限

  • DynamoDB 数据库的读写权限

AUDITOR

  • arn:aws:iam::0123456789:role/finance-auditor

  • Amazon S3 存储桶的读取权限

  • DynamoDB 数据库的读取权限

REPORTING

  • arn:aws:iam::0123456789:role/finance-reporting

  • DynamoDB 数据库的读取权限

  • 取消 Amazon S3 存储桶的权限

业务分析师将 IAM 角色输入映射表,实现 IAM 逻辑角色与 IAM 物理角色的映射。

SAP 用户的 IAM 角色需允许可信主体执行 sts:assumeRole 操作。根据 SAP 系统在 Amazon 上的身份验证方式,可信主体有所不同。有关更多信息,请参阅指定主体

以下列举了部分最常见的 SAP 场景示例:

  • 运行在 Amazon EC2 上且具有实例配置文件的 SAP 系统:此系统会为 IAM 角色附加 Amazon EC2 实例配置文件。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "AWS": "arn:aws:iam::123456789012:role/SapInstanceProfile" } } ] }
  • 运行在 Amazon EC2 上但没有实例配置文件的 SAP 系统:Amazon EC2 会代入适用于 SAP 用户的角色。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "ec2.amazonaws.com" ] } } ] }
  • 本地运行的 SAP 系统:本地运行的 SAP 系统只能使用秘密访问密钥验证身份。有关更多信息,请参阅在 Amazon 上验证 SAP 系统

    SAP 用户必须与其代入的所有 IAM 角色建立信任关系。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "AWS": "arn:aws:iam::123456789012:user/SAP_SYSTEM_S4H" } } ] }