本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
以身分識別為基礎的原則範例 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 帳戶
請遵循線上指示進行。
部分註冊程序需接收來電,並在電話鍵盤輸入驗證碼。
當您註冊一個 AWS 帳戶,一個 AWS 帳戶根使用者已建立。根使用者可以存取所有 AWS 服務 和帳戶中的資源。作為安全最佳實務,請將管理存取權指派給使用者,並且僅使用根使用者來執行需要根使用者存取權的任務。
AWS 註冊過程完成後,會向您發送確認電子郵件。您可以隨時前往 https://aws.amazon.com/
建立具有管理存取權的使用者
在您註冊一個 AWS 帳戶,保護您的 AWS 帳戶根使用者,啟用 AWS IAM Identity Center,並建立系統管理使用者,這樣您就不會將 root 使用者用於日常工作。
保護您的 AWS 帳戶根使用者
-
登入 AWS Management Console
通過選擇 Root 用戶並輸入您的帳戶所有者 AWS 帳戶 電子郵件地址。在下一頁中,輸入您的密碼。 如需使用 root 使用者登入的說明,請參閱以 root 使用者身分登入 AWS 登入 使用者指南。
-
為您的 root 使用者開啟多因素驗證 (MFA)。
如需指示,請參閱為您的MFA裝置啟用虛擬裝置 AWS 帳戶使用者指南中的 root IAM 使用者 (主控台)。
建立具有管理存取權的使用者
-
啟用IAM身分識別中心。
如需指示,請參閱啟用 AWS IAM Identity Center 中的 AWS IAM Identity Center 使用者指南。
-
在IAM身分識別中心中,將管理存取權授與使用者。
若要取得有關使用 IAM Identity Center 目錄 做為身分識別來源,請參閱使用預設值設定使用者存取權 IAM Identity Center 目錄 中的 AWS IAM Identity Center 使用者指南。
以具有管理存取權的使用者身分登入
-
若要使用您的 IAM Identity Center 使用者登入URL,請使用建立IAM身分識別中心使用者時傳送至您電子郵件地址的登入資訊。
如需使用IAM身分識別中心使用者登入的說明,請參閱登入 AWS 存取入口網站 AWS 登入 使用者指南。
指派存取權給其他使用者
-
在 IAM Identity Center 中,建立遵循套用最低權限權限的最佳作法的權限集。
如需相關指示,請參閱「」中的「建立權限集」AWS IAM Identity Center 使用者指南。
-
將使用者指派至群組,然後對該群組指派單一登入存取權。
如需相關指示,請參閱 AWS IAM Identity Center 使用者指南。
使用 AWS Config 主控台
若要存取 AWS Config 控制台中,您必須具有最低限度的權限集。這些權限必須允許您列出並檢視有關 AWS Config 在您的資源 AWS 帳戶。 如果您建立的以身分識別為基礎的原則比所需的最低權限更嚴格,則控制台將無法如預期用於具有該原則的實體 (使用者或角色) 運作。
您不需要針對只撥打電話的使用者允許最低主控台權限 AWS CLI 或 AWS API。相反地,只允許存取符合他們嘗試執行之API作業的動作。
若要確保使用者和角色仍然可以使用 AWS Config 控制台,還附上 AWS Config
AWS 對實體的管理策略。如需詳細資訊,請參閱《使用指南》中的〈將權限新增至IAM使用者〉。AWSConfigUserAccess
您必須授與使用者互動的權限 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 您帳戶的管理員。
唯讀政策不會將 StartConfigurationRecorder
、StopConfigurationRecorder
和 DeleteConfigurationRecorder
動作的許可授予使用者。使用此政策的使用者無法啟動組態記錄器、停止組態記錄器.或是刪除組態記錄器。對於列表 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:配置: |
DeleteEvaluationResults |
Config 規則 ARN:AW:配置: |
DescribeComplianceByConfigRule |
Config 規則 ARN:AW:配置: |
DescribeConfigRuleEvaluationStatus |
Config 規則 ARN:AW:配置: |
GetComplianceDetailsByConfigRule |
Config 規則 ARN:AW:配置: |
PutConfigRule |
Config 規則 ARN:AW:配置: |
StartConfigRulesEvaluation |
Config 規則 ARN:AW:配置: |
PutRemediationConfigurations |
修補組態 ARN:AW:配置: |
DescribeRemediationConfigurations |
修補組態 ARN:AW:配置: |
DeleteRemediationConfiguration |
修補組態 ARN:AW:配置: |
PutRemediationExceptions |
修補組態 ARN:AW:配置: |
DescribeRemediationExceptions |
修補組態 ARN:AW:配置: |
DeleteRemediationExceptions |
修補組態 ARN:AW:配置: |
例如,您希望允許特定使用者的讀取存取和拒絕寫入存取特定規則。
在第一個原則中,您允許 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
Aggregator
APIs支援資源層級權限:
例如,您可以透過建立兩個彙總器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
命令順利完成後,您將可看到與您帳戶相關聯之所有彙總工具的詳細資訊。此範例中的彙總工具為 AccessibleAggregator
和 InAccessibleAggregator
:
{ "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-idAccountID
--aws-regionAwsRegion
此命令應會傳回拒絕存取例外狀況:
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