GetPolicy 사용하기
GetPolicy 사용하기 (SDK/CLI)
GetPolicy(정책 조회) API를 활용하는 방법을 코드 예시로 정리했어요. 각 예시는 어떤 동작을 하는지, 어떤 파라미터를 쓰는지 순서대로 살펴볼 수 있어요.
출처: 문서
본문
다음 코드 예시들은 GetPolicy 를 어떻게 사용하는지 보여줘요.
.NET
/// <summary>
/// Get information about an IAM policy.
/// </summary>
/// <param name="policyArn">The IAM policy to retrieve information for.</param>
/// <returns>The IAM policy.</returns>
public async Task<ManagedPolicy> GetPolicyAsync(string policyArn)
{
var response = await _IAMService.GetPolicyAsync(new GetPolicyRequest { PolicyArn = policyArn });
return response.Policy;
}
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
C++
bool AwsDoc::IAM::getPolicy(const Aws::String &policyArn,
const Aws::Client::ClientConfiguration &clientConfig) {
Aws::IAM::IAMClient iam(clientConfig);
Aws::IAM::Model::GetPolicyRequest request;
request.SetPolicyArn(policyArn);
auto outcome = iam.GetPolicy(request);
if (!outcome.IsSuccess()) {
std::cerr << "Error getting policy " << policyArn << ": " <<
outcome.GetError().GetMessage() << std::endl;
}
else {
const auto &policy = outcome.GetResult().GetPolicy();
std::cout << "Name: " << policy.GetPolicyName() << std::endl <<
"ID: " << policy.GetPolicyId() << std::endl << "Arn: " <<
policy.GetArn() << std::endl << "Description: " <<
policy.GetDescription() << std::endl << "CreateDate: " <<
policy.GetCreateDate().ToGmtString(Aws::Utils::DateFormat::ISO_8601)
<< std::endl;
}
return outcome.IsSuccess();
}
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
AWS CLI
지정한 관리형 정책 정보 조회하기
aws iam get-policy \
--policy-arn arn:aws:iam::123456789012:policy/MySamplePolicy
이 예시는 ARN이 arn:aws:iam::123456789012:policy/MySamplePolicy인 관리형 정책의 세부 정보를 반환해요.
{
"Policy": {
"PolicyName": "MySamplePolicy",
"CreateDate": "2015-06-17T19:23;32Z",
"AttachmentCount": 0,
"IsAttachable": true,
"PolicyId": "Z27SI6FQMGNQ2EXAMPLE1",
"DefaultVersionId": "v1",
"Path": "/",
"Arn": "arn:aws:iam::123456789012:policy/MySamplePolicy",
"UpdateDate": "2015-06-17T19:23:32Z"
}
}
출력:
Go(SDK for Go V2)
import (
"context"
"encoding/json"
"log"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/service/iam"
"github.com/aws/aws-sdk-go-v2/service/iam/types"
)
// PolicyWrapper encapsulates AWS Identity and Access Management (IAM) policy actions
// used in the examples.
// It contains an IAM service client that is used to perform policy actions.
type PolicyWrapper struct {
IamClient *iam.Client
}
// GetPolicy gets data about a policy.
func (wrapper PolicyWrapper) GetPolicy(ctx context.Context, policyArn string) (*types.Policy, error) {
var policy *types.Policy
result, err := wrapper.IamClient.GetPolicy(ctx, &iam.GetPolicyInput{
PolicyArn: aws.String(policyArn),
})
if err != nil {
log.Printf("Couldn't get policy %v. Here's why: %v\n", policyArn, err)
} else {
policy = result.Policy
}
return policy, err
}
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
JavaScript(SDK v3)
import { GetPolicyCommand, IAMClient } from "@aws-sdk/client-iam";
const client = new IAMClient({});
/**
*
* @param {string} policyArn
*/
export const getPolicy = (policyArn) => {
const command = new GetPolicyCommand({
PolicyArn: policyArn,
});
return client.send(command);
};
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
정책을 가져와요.
JavaScript(SDK v2)
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });
// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });
var params = {
PolicyArn: "arn:aws:iam::aws:policy/AWSLambdaExecute",
};
iam.getPolicy(params, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data.Policy.Description);
}
});
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
Kotlin
suspend fun getIAMPolicy(policyArnVal: String?) {
val request =
GetPolicyRequest {
policyArn = policyArnVal
}
IamClient.fromEnvironment { region = "AWS_GLOBAL" }.use { iamClient ->
val response = iamClient.getPolicy(request)
println("Successfully retrieved policy ${response.policy?.policyName}")
}
}
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
PHP
$uuid = uniqid();
$service = new IAMService();
public function getPolicy($policyArn)
{
return $this->customWaiter(function () use ($policyArn) {
return $this->iamClient->getPolicy(['PolicyArn' => $policyArn]);
});
}
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
PowerShell Tools (V4)
예시 1: ARN이 arn:aws:iam::123456789012:policy/MySamplePolicy인 관리형 정책의 세부 정보를 반환해요.
Get-IAMPolicy -PolicyArn arn:aws:iam::123456789012:policy/MySamplePolicy
출력:
Arn : arn:aws:iam::aws:policy/MySamplePolicy
AttachmentCount : 0
CreateDate : 2/6/2015 10:40:08 AM
DefaultVersionId : v1
Description :
IsAttachable : True
Path : /
PolicyId : Z27SI6FQMGNQ2EXAMPLE1
PolicyName : MySamplePolicy
UpdateDate : 2/6/2015 10:40:08 AM
PowerShell Tools (V5)
예시 1: ARN이 arn:aws:iam::123456789012:policy/MySamplePolicy인 관리형 정책의 세부 정보를 반환해요.
Get-IAMPolicy -PolicyArn arn:aws:iam::123456789012:policy/MySamplePolicy
출력:
Arn : arn:aws:iam::aws:policy/MySamplePolicy
AttachmentCount : 0
CreateDate : 2/6/2015 10:40:08 AM
DefaultVersionId : v1
Description :
IsAttachable : True
Path : /
PolicyId : Z27SI6FQMGNQ2EXAMPLE1
PolicyName : MySamplePolicy
UpdateDate : 2/6/2015 10:40:08 AM
Python(Boto3)
def get_default_policy_statement(policy_arn):
"""
Gets the statement of the default version of the specified policy.
:param policy_arn: The ARN of the policy to look up.
:return: The statement of the default policy version.
"""
try:
policy = iam.Policy(policy_arn)
# To get an attribute of a policy, the SDK first calls get_policy.
policy_doc = policy.default_version.document
policy_statement = policy_doc.get("Statement", None)
logger.info("Got default policy doc for %s.", policy.policy_name)
logger.info(policy_doc)
except ClientError:
logger.exception("Couldn't get default policy statement for %s.", policy_arn)
raise
else:
return policy_statement
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
Ruby
# Fetches an IAM policy by its ARN
# @param policy_arn [String] the ARN of the IAM policy to retrieve
# @return [Aws::IAM::Types::GetPolicyResponse] the policy object if found
def get_policy(policy_arn)
response = @iam_client.get_policy(policy_arn: policy_arn)
policy = response.policy
@logger.info("Got policy '#{policy.policy_name}'. Its ID is: #{policy.policy_id}.")
policy
rescue Aws::IAM::Errors::NoSuchEntity
@logger.error("Couldn't get policy '#{policy_arn}'. The policy does not exist.")
raise
rescue Aws::IAM::Errors::ServiceError => e
@logger.error("Couldn't get policy '#{policy_arn}'. Here's why: #{e.code}: #{e.message}")
raise
end
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
SAP ABAP
TRY.
oo_result = lo_iam->getpolicy( iv_policyarn = iv_policy_arn ).
MESSAGE 'Retrieved policy information.' TYPE 'I'.
CATCH /aws1/cx_iamnosuchentityex.
MESSAGE 'Policy does not exist.' TYPE 'E'.
ENDTRY.
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
Swift
import AWSIAM
import AWSS3
public func getPolicy(arn: String) async throws -> IAMClientTypes.Policy {
let input = GetPolicyInput(
policyArn: arn
)
do {
let output = try await client.getPolicy(input: input)
guard let policy = output.policy else {
throw ServiceHandlerError.noSuchPolicy
}
return policy
} catch {
print("ERROR: getPolicy:", dump(error))
throw error
}
}
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.