以身分識別為基礎的原則範例 AWS Config - AWS Config

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

以身分識別為基礎的原則範例 AWS Config

根據預設,使用者和角色沒有建立或修改的權限 AWS Config 的費用。他們也無法執行任務使用 AWS Management Console, AWS Command Line Interface (AWS CLI),或 AWS API。若要授與使用者對所需資源執行動作的權限,IAM管理員可以建立IAM策略。然後,系統管理員可以將IAM原則新增至角色,使用者可以擔任這些角色。

若要瞭解如何使用這些範例原則文件來建立以IAM身分識別為基礎的JSON策略,請參閱使用指南中的IAM建立IAM策略。

有關由定義的動作和資源類型的詳細資訊 AWS Config,包括每個資源類型的格式,請參閱的動作、資源和條件索引鍵 ARNs AWS Config在「服務授權參考」中。

政策最佳實務

以身分識別為基礎的原則會決定某人是否可以建立、存取或刪除 AWS Config 您帳戶中的資源。這些動作可能會為您帶來成本 AWS 帳戶。 建立或編輯以身分識別為基礎的原則時,請遵循下列準則和建議:

  • 開始使用 AWS 受管原則並朝著最低權限權限移轉 — 若要開始授與使用者和工作負載的權限,請使用 AWS 授與許多常見使用案例權限的受管理策略。他們是可用的 AWS 帳戶。 建議您透過定義進一步減少權限 AWS 針對您的使用案例特定的客戶管理政策。如需詳細資訊,請參閱 AWS 受管理的策略AWS 《使用者指南》中針對工作職能的IAM管理策略

  • 套用最低權限權限 — 當您使用原則設定權限時,IAM只授與執行工作所需的權限。為實現此目的,您可以定義在特定條件下可以對特定資源採取的動作,這也稱為最低權限許可。如需有關使用套用權限IAM的詳細資訊,請參閱《使用指南》IAM中的IAM《策略與權限

  • 使用IAM策略中的條件進一步限制存取 — 您可以在策略中新增條件,以限制對動作和資源的存取。例如,您可以撰寫政策條件,以指定必須使用傳送所有要求SSL。如果服務動作是透過特定使用條件,您也可以使用條件來授與對服務動作的存取權 AWS 服務,例如, AWS CloudFormation。 如需詳細資訊,請參閱《IAM使用指南》中的IAMJSON策略元素:條件

  • 使用 IAM Access Analyzer 驗證您的原IAM則,以確保安全和功能性的權限 — IAM Access Analyzer 會驗證新的和現有的原則,以便原則遵循IAM原則語言 (JSON) 和IAM最佳做法。IAMAccess Analyzer 提供超過 100 項原則檢查和可行的建議,協助您撰寫安全且功能正常的原則。如需詳細資訊,請參閱IAM使IAM用指南中的存取分析器原則驗證

  • 需要多重要素驗證 (MFA) — 如果您的案例需要使IAM用者或 root 使用者 AWS 帳戶,請開啟MFA以獲得額外的安全性。若要在呼叫API作業MFA時需要,請將MFA條件新增至您的原則。如需詳細資訊,請參閱《IAM使用指南》中的 < 設定MFA受保護的API存取 >。

如需有關中最佳作法的詳細資訊IAM,請參閱《IAM使用指南》IAM中的「安全性最佳作法」。

註冊一個 AWS 帳戶

如果您沒有 AWS 帳戶,請完成下列步驟來建立。

若要註冊成為 AWS 帳戶
  1. 打開https://portal.aws.amazon.com/billing/註冊

  2. 請遵循線上指示進行。

    部分註冊程序需接收來電,並在電話鍵盤輸入驗證碼。

    當您註冊一個 AWS 帳戶,一個 AWS 帳戶根使用者已建立。根使用者可以存取所有 AWS 服務 和帳戶中的資源。作為安全最佳實務,請將管理存取權指派給使用者,並且僅使用根使用者來執行需要根使用者存取權的任務

AWS 註冊過程完成後,會向您發送確認電子郵件。您可以隨時前往 https://aws.amazon.com/並選擇「我的帳戶」,檢視目前的帳戶活動並管理您的帳戶

建立具有管理存取權的使用者

在您註冊一個 AWS 帳戶,保護您的 AWS 帳戶根使用者,啟用 AWS IAM Identity Center,並建立系統管理使用者,這樣您就不會將 root 使用者用於日常工作。

保護您的 AWS 帳戶根使用者
  1. 登入 AWS Management Console通過選擇 Root 用戶並輸入您的帳戶所有者 AWS 帳戶 電子郵件地址。在下一頁中,輸入您的密碼。

    如需使用 root 使用者登入的說明,請參閱以 root 使用者身分登AWS 登入 使用者指南

  2. 為您的 root 使用者開啟多因素驗證 (MFA)。

    如需指示,請參閱為您的MFA裝置啟用虛擬裝置 AWS 帳戶使用者指南中的 root IAM 使用者 (主控台)。

建立具有管理存取權的使用者
  1. 啟用IAM身分識別中心。

    如需指示,請參閱啟用 AWS IAM Identity Center 中的 AWS IAM Identity Center 使用者指南

  2. 在IAM身分識別中心中,將管理存取權授與使用者。

    若要取得有關使用 IAM Identity Center 目錄 做為身分識別來源,請參閱使用預設值設定使用者存取權 IAM Identity Center 目錄 中的 AWS IAM Identity Center 使用者指南

以具有管理存取權的使用者身分登入
  • 若要使用您的 IAM Identity Center 使用者登入URL,請使用建立IAM身分識別中心使用者時傳送至您電子郵件地址的登入資訊。

    如需使用IAM身分識別中心使用者登入的說明,請參閱登入 AWS 存取入口網站 AWS 登入 使用者指南

指派存取權給其他使用者
  1. 在 IAM Identity Center 中,建立遵循套用最低權限權限的最佳作法的權限集。

    如需相關指示,請參閱「」中的「建立權限集AWS IAM Identity Center 使用者指南

  2. 將使用者指派至群組,然後對該群組指派單一登入存取權。

    如需相關指示,請參閱 AWS IAM Identity Center 使用者指南

使用 AWS Config 主控台

若要存取 AWS Config 控制台中,您必須具有最低限度的權限集。這些權限必須允許您列出並檢視有關 AWS Config 在您的資源 AWS 帳戶。 如果您建立的以身分識別為基礎的原則比所需的最低權限更嚴格,則控制台將無法如預期用於具有該原則的實體 (使用者或角色) 運作。

您不需要針對只撥打電話的使用者允許最低主控台權限 AWS CLI 或 AWS API。相反地,只允許存取符合他們嘗試執行之API作業的動作。

若要確保使用者和角色仍然可以使用 AWS Config 控制台,還附上 AWS Config AWSConfigUserAccess AWS 對實體的管理策略。如需詳細資訊,請參閱《使用指南》中的〈將權限新增至IAM使用者〉

您必須授與使用者互動的權限 AWS Config。 對於需要完全訪問權限的用戶 AWS Config,使用「完整存取權限」 AWS Config受管理的策略。

若要提供存取權,請新增權限至您的使用者、群組或角色:

  • 中的使用者和群組 AWS IAM Identity Center:

    建立權限合集。遵循中建立權限集中的指示 AWS IAM Identity Center 使用者指南

  • IAM透過身分識別提供者管理的使用者:

    建立聯合身分的角色。請遵循《使用指南》中的〈為第三方身分識別提供IAM者 (同盟) 建立角色〉中的指示進行。

  • IAM使用者:

    • 建立您的使用者可擔任的角色。請按照《用戶南》中的「為IAM用戶創建角色」中的IAM說明進行操作。

    • (不建議) 將政策直接附加至使用者,或將使用者新增至使用者群組。遵循《使用者指南》中的「向使用者 (主控台) 新增權限」IAM 中的示進行。

允許使用者檢視他們自己的許可

此範例顯示如何建立原則,讓使IAM用者檢視附加至其使用者身分識別的內嵌和受管理原則。此原則包含在主控台上完成此動作的權限,或以程式設計方式使用 AWS CLI 或 AWS API.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

唯讀存取 AWS Config

下面的例子顯示 AWS 受管理的原則AWSConfigUserAccess,授與唯讀存取權限 AWS Config.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "config:Get*", "config:Describe*", "config:Deliver*", "config:List*", "config:Select*", "tag:GetResources", "tag:GetTagKeys", "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents" ], "Resource": "*" } ] }

在政策陳述式中,Effect 元素指定允許或拒絕動作。Action 元素列出允許使用者執行的特定動作。元Resource素會列出 AWS 允許使用者執行這些動作的資源。對於控制存取權的原則 AWS Config 動作時,Resource元素始終設定為*,萬用字元表示「所有資源」。

Action元素中的值對應於服務支援的值。APIs動作前面有config:以表示它們所參考 AWS Config 動作。您可以在 Action 元素中使用 * 萬用字元,如下列範例所示:

  • "Action": ["config:*ConfigurationRecorder"]

    這允許所有 AWS Config 以 "ConfigurationRecorder" 結尾的動作 (StartConfigurationRecorder,StopConfigurationRecorder)。

  • "Action": ["config:*"]

    這允許所有 AWS Config 動作,但不適用於其他動作 AWS 服務。

  • "Action": ["*"]

    這允許所有 AWS 動作。此權限適用於作為 AWS 您帳戶的管理員。

唯讀政策不會將 StartConfigurationRecorderStopConfigurationRecorderDeleteConfigurationRecorder 動作的許可授予使用者。使用此政策的使用者無法啟動組態記錄器、停止組態記錄器.或是刪除組態記錄器。對於列表 AWS Config 動作,請參閱 AWS Config API參考

完全存取 AWS Config

下列範例顯示授與完整存取權的策略 AWS Config。 它授予用戶執行所有的權限 AWS Config 動作。它也可讓使用者管理 Amazon S3 儲存貯體中的檔案,並在使用者所關聯的帳戶中管理 Amazon SNS 主題。

重要

此政策會授予廣泛許可。授予完整存取之前,請考慮從最少的一組許可開始,然後依需要授予其他許可。這比一開始使用太寬鬆的許可,爾後再嘗試限縮許可更為安全。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListPlatformApplications", "sns:ListTopics", "sns:SetTopicAttributes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketNotification", "s3:GetBucketPolicy", "s3:GetBucketRequestPayment", "s3:GetBucketVersioning", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListBucketVersions", "s3:PutBucketPolicy" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:GetRole", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:ListRoles", "iam:PutRolePolicy", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicyVersion", "iam:CreateServiceLinkedRole" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "config.amazonaws.com", "ssm.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "config:*", "tag:Get*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:DescribeDocument", "ssm:GetDocument", "ssm:DescribeAutomationExecutions", "ssm:GetAutomationExecution", "ssm:ListDocuments", "ssm:StartAutomationExecution" ], "Resource": "*" } ] }

支援的資源層級權限 AWS Config 規則API動作

資源層級許可能夠讓您指定使用者可執行動作的資源。 AWS Config 支援某些資源層級權限 AWS Config 規則API動作。這意味著對於某些 AWS Config 規則動作,您可以控制允許使用者使用這些動作時的條件。這些條件可以是必須滿足的動作,也可以是允許使用者使用的特定資源。

下表說明 AWS Config 目前支援資源層級權限的規則API動作。它還描述了支持的資源及其ARNs每個動作。指定時ARN,您可以在路徑中使用 * 萬用字元;例如,當您不能或不想指定確切的資源時IDs。

重要

如果 AWS Config 此表格中未列出規則API動作,因此不支援資源層級權限。如果 AWS Config 規則動作不支援資源層級權限,您可以授與使用者使用動作的權限,但您必須為政策陳述式的資源元素指定 *。

API動作 資源

DeleteConfigRule

Config 規則

ARN:AW:配置:region:accountID:配置規則/配置規則-ID

DeleteEvaluationResults

Config 規則

ARN:AW:配置:region:accountID:配置規則/配置規則-ID

DescribeComplianceByConfigRule

Config 規則

ARN:AW:配置:region:accountID:配置規則/配置規則-ID

DescribeConfigRuleEvaluationStatus

Config 規則

ARN:AW:配置:region:accountID:配置規則/配置規則-ID

GetComplianceDetailsByConfigRule

Config 規則

ARN:AW:配置:region:accountID:配置規則/配置規則-ID

PutConfigRule

Config 規則

ARN:AW:配置:region:accountID:配置規則/配置規則-ID

StartConfigRulesEvaluation

Config 規則

ARN:AW:配置:region:accountID:配置規則/配置規則-ID

PutRemediationConfigurations

修補組態

ARN:AW:配置:region:accountId:修復配置/config rule name/remediation configuration id

DescribeRemediationConfigurations

修補組態

ARN:AW:配置:region:accountId:修復配置/config rule name/remediation configuration id

DeleteRemediationConfiguration

修補組態

ARN:AW:配置:region:accountId:修復配置/config rule name/remediation configuration id

PutRemediationExceptions

修補組態

ARN:AW:配置:region:accountId:修復配置/config rule name/remediation configuration id

DescribeRemediationExceptions

修補組態

ARN:AW:配置:region:accountId:修復配置/config rule name/remediation configuration id

DeleteRemediationExceptions

修補組態

ARN:AW:配置:region:accountId:修復配置/config rule name/remediation configuration id

例如,您希望允許特定使用者的讀取存取和拒絕寫入存取特定規則。

在第一個原則中,您允許 AWS Config 規則讀取動作,例如針DescribeConfigRuleEvaluationStatus對指定的規則。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "config:StartConfigRulesEvaluation", "config:DescribeComplianceByConfigRule", "config:DescribeConfigRuleEvaluationStatus", "config:GetComplianceDetailsByConfigRule" ], "Resource": [ "arn:aws:config:region:accountID:config-rule/config-rule-ID", "arn:aws:config:region:accountID:config-rule/config-rule-ID" ] } ] }

在第二個策略中,您拒絕 AWS Config 特定規則上的規則寫入動作。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Deny", "Action": [ "config:PutConfigRule", "config:DeleteConfigRule", "config:DeleteEvaluationResults" ], "Resource": "arn:aws:config:region:accountID:config-rule/config-rule-ID" } ] }

透過資源層級權限,您可以允許讀取存取和拒絕寫入存取權,以便對以執行特定動作 AWS Config 規則API動作。

支援多帳戶多區域資料彙總的資源層級許可

您可以使用資源層級許可,控制使用者彙總多帳戶多區域資料時執行特定動作的能力。如下所示 AWS Config AggregatorAPIs支援資源層級權限:

例如,您可以透過建立兩個彙總器AccessibleAggregator並附加允許存取AccessibleAggregator但拒絕存取的IAM策略InAccessibleAggregator,來限制特定使用者對資源資料的存取。InAccessibleAggregator

IAM政策 AccessibleAggregator

在此原則中,您允許存取支援的彙總器動作 AWS Config 您指定的 Amazon 資源名稱(ARN)。在此範例中, AWS Config ARN是arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-mocpsqhs

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfigAllow", "Effect": "Allow", "Action": [ "config:BatchGetAggregateResourceConfig", "config:DeleteConfigurationAggregator", "config:DescribeAggregateComplianceByConfigRules", "config:DescribeAggregateComplianceByConformancePacks", "config:DescribeConfigurationAggregatorSourcesStatus", "config:GetAggregateComplianceDetailsByConfigRule", "config:GetAggregateConfigRuleComplianceSummary", "config:GetAggregateConformancePackComplianceSummary", "config:GetAggregateDiscoveredResourceCounts", "config:GetAggregateResourceConfig", "config:ListAggregateDiscoveredResources", "config:PutConfigurationAggregator", "config:SelectAggregateResourceConfig" ], "Resource": "arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-mocpsqhs" } ] }

IAM政策 InAccessibleAggregator

在此原則中,您拒絕存取支援的彙總器動作 AWS Config ARN您指定的。在此範例中, AWS Config ARN是arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-pokxzldx

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfigDeny", "Effect": "Deny", "Action": [ "config:BatchGetAggregateResourceConfig", "config:DeleteConfigurationAggregator", "config:DescribeAggregateComplianceByConfigRules", "config:DescribeAggregateComplianceByConformancePacks", "config:DescribeConfigurationAggregatorSourcesStatus", "config:GetAggregateComplianceDetailsByConfigRule", "config:GetAggregateConfigRuleComplianceSummary", "config:GetAggregateConformancePackComplianceSummary", "config:GetAggregateDiscoveredResourceCounts", "config:GetAggregateResourceConfig", "config:ListAggregateDiscoveredResources", "config:PutConfigurationAggregator", "config:SelectAggregateResourceConfig" ], "Resource": "arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-pokxzldx" } ] }

如果開發人員群組的使用者嘗試對 AWS Config ARN您指定的,該用戶將獲得拒絕訪問異常。

檢查使用者存取許可

若要顯示您已建立的彙總器,請執行下列指令 AWS CLI 命令:

aws configservice describe-configuration-aggregators

命令順利完成後,您將可看到與您帳戶相關聯之所有彙總工具的詳細資訊。此範例中的彙總工具為 AccessibleAggregatorInAccessibleAggregator

{ "ConfigurationAggregators": [ { "ConfigurationAggregatorArn": "arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-mocpsqhs", "CreationTime": 1517942461.442, "ConfigurationAggregatorName": "AccessibleAggregator", "AccountAggregationSources": [ { "AllAwsRegions": true, "AccountIds": [ "AccountID1", "AccountID2", "AccountID3" ] } ], "LastUpdatedTime": 1517942461.455 }, { "ConfigurationAggregatorArn": "arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-pokxzldx", "CreationTime": 1517942461.442, "ConfigurationAggregatorName": "InAccessibleAggregator", "AccountAggregationSources": [ { "AllAwsRegions": true, "AccountIds": [ "AccountID1", "AccountID2", "AccountID3" ] } ], "LastUpdatedTime": 1517942461.455 } ] }
注意

用於account-aggregation-sources輸入逗號分隔的列表 AWS 您IDs要彙總資料的帳戶。用方括號包裝帳戶IDs,並確定逸出引號 (例如,"[{\"AccountIds\": [\"AccountID1\",\"AccountID2\",\"AccountID3\"],\"AllAwsRegions\": true}]")。

附加下列IAM原則以拒絕存取InAccessibleAggregator,或拒絕存取的彙總器。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfigDeny", "Effect": "Deny", "Action": [ "config:BatchGetAggregateResourceConfig", "config:DeleteConfigurationAggregator", "config:DescribeAggregateComplianceByConfigRules", "config:DescribeAggregateComplianceByConformancePacks", "config:DescribeConfigurationAggregatorSourcesStatus", "config:GetAggregateComplianceDetailsByConfigRule", "config:GetAggregateConfigRuleComplianceSummary", "config:GetAggregateConformancePackComplianceSummary", "config:GetAggregateDiscoveredResourceCounts", "config:GetAggregateResourceConfig", "config:ListAggregateDiscoveredResources", "config:PutConfigurationAggregator", "config:SelectAggregateResourceConfig" ], "Resource": "arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-pokxzldx" } ] }

接下來,您可以確認此IAM政策適用於限制特定彙總器規則的存取:

aws configservice get-aggregate-compliance-details-by-config-rule --configuration-aggregator-name InAccessibleAggregator --config-rule-name rule name --account-id AccountID --aws-region AwsRegion

此命令應會傳回拒絕存取例外狀況:

An error occurred (AccessDeniedException) when calling the GetAggregateComplianceDetailsByConfigRule operation: User: arn:aws:iam::AccountID:user/ is not authorized to perform: config:GetAggregateComplianceDetailsByConfigRule on resource: arn:aws:config:AwsRegion-1:AccountID:config-aggregator/config-aggregator-pokxzldx